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.
I've been thinking about this point...
I don't see any real reason why we need reset CPU before halt it except to reset all cores, registers and memory.
But it also create undesired short time firmware execution.
I would prefer SYSRESETREQ reset after halt for nrf51 target anyway.
Let me know if you get any reason why reset() was needed for other targets.