Move memory read/write into platform abstraction.

Previously the memory read/write commands assumed that MRI was always
running as a monitor on the target itself.  This meant that they could
just read/write memory directly when such a request was made.  This
commit adds __mriPlatform_MemRead/Write32/16/8() routines to the
platform porting layer.  This will allow me in the future to provide
platform abstractions for reading core dumps and debugging remote
targets via CMSIS-DAP in the future.

The memory read/write routines in mri/memory.c now use these new
platform abstraction routines.

NOTE: There is still a lot of other platform code for the cortex-m
and lpc1768 targets which need to access target memory through these
routines as well.  Without those changes, it isn't possible to use MRI
code for remote debugging via JTAG, SWD, etc.  It is enough for me to
get started with a core dump utility.
Remove CppUTest directory.

Preparing to just have a single CppUTest repo on github that I can use
as a submodule in my other repos.
Pull in CppUTest as submodule

I have a temporary repository for CppUTest on my machine that I now
pull in as a submodule.  Later I will switch it to point to a public
repository up on github.
Fix profiled CppUTest builds on OS X

Instead of explicitly linking with libprofile_rt.a, just pass the
-fprofile-arcs and -ftest-coverage flags to clang in the link stage.
CppUTest now exists on github
Add "How to Clone" steps to README

Document how to use submodules during the git clone process now that
CppUTest is a submodule.