Updates to memory read/write command handling

I introduced a ADD32_TO_POINTER() macro which keeps things the same on
32-bit platforms like ARMv7-M but still allows for 32-bit addresses to
be sent over the GDB protocol while unit testing on 64-bit machines.
The 64-bit solution is a bit of a hack but good enough for unit tests.
Since the tests pass addresses into the GDB protocol which originate on
the stack, this macro creates a 64-bit pointer by getting the upper
32-bit of the address from the current stack pointer value and ORing
that in with the lowers 32-bits sent over the wire by the test.

I made HandleMemoryWriteCommand() consistent with
HandleBinaryMemoryWriteCommand() by having it also treat buffer read
overruns differently than a memory access failures (ie. returning a
different error response.)

I got rid of the static readBinaryMemoryWriteArguments() and used the
ReadAddressAndLengthArgumentsWithColon() function from cmd_common.c.
This reduces code duplication.
Added unit tests for cmd_memory module

The code coverage for cmd_memory.c, memory.c, cmd_common.c, and
native-mem.c are now at 100%.

I added the ability to have Platform_WasMemoryFaultEncountered() return
TRUE on a specific call.