ARC: Fix support for big endian memory model

OpenOCD wasn't working properly with big-endian cores: operations on bytes
and half-words were done at wrong addresses, word-operations were correct.
In case of reading problem was happening because half-word or byte was
extracted from word-aligned array when it was in host-endianness, then
half-words were converted to target order. However to work instead of words
should be converted to target endianness first, then desired bytes should be
extracted. What was happening was that order of bytes in half-words was
correct, but half-word was itself wrong. Bytes also were took from invalid
address.

Another problem with existing code was that it implemented unaligned memory
access. This is not required, because generic code in OpenOCD can split
unaligned memory access to a series of aligned access. Code in arc_mem.c
worked only for little-endian host and target (maybe for big-endian host and
target as well), but not for little-endian host and big-endian target.
Considering that it is not needed and makes code only more complex I've
removed support for unaligned memory accesses in both writes and reads.
OpenOCD generic code splits memory access in a right way for both
little- and big-endian.

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