atomic.h: Improve memory barrier

Replace of_memory_read_barrier() and of_memory_write_barrier() - which
are quite unspecific - with of_memory_enter_barrier() and
of_memory_leave_barrier().

Also add an assembly implementation for ARM and ARM64.