A lot fixes for NRF51822. Make pyOCD usable with nRF51 CPU.

- add options for gdb_server.py: SoftDevice flash protection, don't break at hard fault handler, correct resume procedure, add extra monitor command.
- mask interrupt when stepping. Required for NRF51. Otherwise GDB server can't step if any interrupt occured during halted state. In case of nrf51 with enabled BLE it happens all the time.
- fix nrf51 reset(), resetStopResume() functions.
- add nrf51 specific gdb_server server.
When you loaded new code to the nrf51 over GDB were you using an axf/elf/bin file of just the application, or was it an image with the softdevice as well?  If it was an image with just the application code, then the GDB server might be able to automatically skip flashing the softdevice.  Right now it fills everything before the start flash address with 0xFF which will overwrite any bootloader or softdevice.  This behavior could be changed so it only erases the pages sent by the GDB client.  Let me know what you think.  I might try to add this regardless so bootloaders don't get erased on Kinetis devices.