Fix LocalFileSystem dump writer

I had a bug in dumpHalfWords() and dumpWords() where I wasn't writing
out the val variable that I just read in but using the already
advanced pMemory pointer instead.
Generate precise & imprecise faults in CrashApp sample
Dump fault status registers on Cortex-M3/M4 parts

The CrashDebug utility is able to use the contents of the fault status
registers (HFSR, BFSR, BFAR, etc.) to display information in GDB to let
the user know more about what caused a crash dump.  It just needs the
contents of these fault status registers to be available in the dump to
enable the display of this information.

Example GDB output using this information:
**Hard Fault**
  Status Register: 0x40000000
    Forced
**Bus Fault**
  Status Register: 0x82
    Fault Address: 0xffffffff
    Precise Data Access

This commit adds code to CrashCatcher which will output 5 words of
fault status registers at the end of the dump if not running on
Cortex-M0 devices (these ARMv6-M devices don't have these status
registers.)

Rather than hardcode the 32-bit addresses of the CPUID and fault status
registers in the code, the code indirectly accesses them through
g_pCrashCatcherCpuId and g_pCrashCatcherFaultStatusRegisters pointers
so that they can be redirected by the unit tests when running on the
host system rather than Cortex-M devices themselves.

I also renamed the external g_dumpEndReturn global in HexDump.c to
g_crashCatcherDumpEndReturn so that it was less likely to collide
with anything else in an application's namespace.