Close interface to prevent hanging on windows

In board.py the function uninit only closes the interface if an
exception occurs in either target.resume() or transport.uninit().
This patch moves the finally block running interface.close to
the top try block so the interface always gets closed.
This fixes the hanging commonly seen on windows.

This problem was introduced in the commit
f55ecc9bf9d9cb3fd380ab29774c1618a4f18eda - "Fix a different python
hang (on Windows) when an error occurred during the flash.init()."

To prevent the interface from getting closed a second time by the
gdb server, this patch also reverts the commit
474ee42e19c48742e296b2d46556c4118d45ed48 -
"Close the usb interface in gdbserver stop"
Allow target to be explicitly specified

This patch adds an extra parameter, target_override, to
getAllConnectedBoards and chooseBoard in mbed_board.py and to the gdb
server.  This overrides the default target allowing the same mbed
firmware to be used to debug more than just the built in chip.  This
is particularly useful on platforms which have a jtag connector for
external debugging such as the Freescale FRDM boards.  This patch also
fixes spelling errors in the gdb server.