Initial implementation of core

The core C functionality of the crash dumper is now complete.  It
thunks out to CrashCatcher_DumpStart() and CrashCatcher_DumpEnd() at
the beginning and end of a dump.  It also calls
CrashCatcher_GetMemoryRegions() to obtain a list of volatile memory
locations to dump. Finally it calls CrashCatcher_DumpMemory() to
actually output each chunk of data as needed (either register contents
now in memory or specified memory regions.)

The ASM based exception handler which pushes more context to the
stack before calling CrashCatcher_Entry() will be written later once
more of the high level C routines have been completed.

Next steps:
* Flesh out the build system a bit more to get it to build for ARM
  targets in addition to the host only based unit testing that has been
  done so far.
* Implement the HexDump module which sits on top of this core to dump
  as hex to something like the UART.
* Thumb/Thumb2 routines which call CrashCatcher_Entry() to kick off the
  dumping process.
* Floating point support on Cortex-M4F parts.
* LocalFileSystem and newlib stdout/stdin based sample implementations.
Initial makefile

I copied over the MRI makefile since it builds both unit tests to run
on the host and final code to run on the Cortex-M prcocessors.

The ARM target based portion of the makefile is mostly commented out at
this point and I will add it in shortly.  So far I have been
concentrating on the unit tests only.