Add MemorySim_MapSimulatedAddressToHostAddress*()

Added the following two new APIs to the MemorySim module:
    MemorySim_MapSimulatedAddressToHostAddressForWrite()
    MemorySim_MapSimulatedAddressToHostAddressForRead()
These APIs allow the simulator to take an address used by code running
within the simulator and map it to the actual memory in the host system
running the simulator. This is useful for implementing newlib syscall
thunks in the simulator when addresses for read and writes are passed
in from the code running on the simulator.  The simulator can call the
corresponding (read/write) mapping API to get a valid address for the
the simulator and use it when calling the desired host Posix function
on behalf of the simulated program.
Extend read()/write() mocks

I extended the write mock to track writes to files other than stdout
stderr.  I also added the ability to have the write() mock return an
error back to the caller and set the global errno.

I extended the read mock to not return an error for accessing any file
other than stdin but instead returning data from the read buffer just
as it already did for stdin reads.  This allows mocking of read() calls
performed for any file handle.
Update newlib semihost support

Previously most of the newlib semihost handlers in pinkySim would pass
syscall requests onto GDB.  This meant that GDB needed to be connected
to the simulator to perform any file I/O.  This commit modifies things
so that most newlib syscalls will be handled by calling Posix APIs
directly on the host rather than marshalling the requests over to GDB.
The only exception is to send stdout, stdin, and stderr read/writes to
GDB if it is attached.

I did modify the handling of fstat() and stat() calls a bit.  Now a
minimal stat structure is filled in by pinkySim (it just contains
mode, size, blocks, and blksize fields).  These fields are then copied
into the awaiting newlib stat structure by code in NewlibRetarget.c
which is linked into the simulated program.  This way the host and
target can share a stat structure definition even though each of theirs
will contain differences (OS X and newlib for example).