Remove Platform_* APIs that aren't needed

These APIs can be removed and the code will still link.  This helps
improve the code coverage for this module.
Refactor Semihost_HandleSemihostRequest()

Improved code coverage by removing error handling code paths that can't
be hit due to checking that the MRI core does before it calls this
handler.
Improve breakpoint code coverage

Added unit tests to improve code coverage of hardware breakpoint
handling code.  I also updated Platform_ClearHardwareBreakpoint() to
return an invalid argument exception if
MemorySim_ClearHardwareBreakpoint() throws an exception since it most
likely means that an invalid address was passed in from GDB and
MemorySim couldn't find a matching region.
Improve watchpoint code coverage

Added unit tests to cover some of the error cases in the watchpoint code
which weren't previously being covered.
Improve mri4sim.c code coverage

I added tests to run Platform* APIs that don't end up being called by
the MRI core because of things like waiting for GDB connection being
disabled for the simulator.  This gets the code coverage for mri4sim.c
up to 100%.