Arc: Fix unaligned memory access

Access to unaligned addresses was broken: for read invalid number of
full words was read if both start address and end address are unaligned;
for writes writing of second half word has been broken.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
Arc: Fix unaligned 32-bit breakpoints

32-bit breakpoints at unaligned addresses were broken, because
low-level functions has been called, and those functions assume that
whatever alignment is required has already been done. So for example
32-bit writes at unaligned address were passed as one write, instead of
being split at several, according to rules of alignment. This patch
fixes this by using higher level functions that do everything for us.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>