Pyusb backend fix for using EP0

Instead of raising an exception when no OUT EP is present, the
pyusb_backend will  use the control endpoint for HID OUT transfers.
Tested withNRF mkit.
[Tests] KL46Z addition plus exception if board is not supported, lpc800 id correction
Merge pull request #42 from 0xc0170/fix_issue#39

[Tests] KL46Z addition plus exception if a board is not supported, lpc800 board id correction
Added comments and intermediate variables
Change the pyocd-binary link to root dir
Merge pull request #43 from ECNU3D/pyocd-improvements

[Doc] Change the pyocd-binary link to root dir
Merge pull request #40 from NordicSemiconductor/master

[pyUSB] Pyusb backend fix for using EP0
Fix readMem and writeMem by writing to DP select

The functions readMem and writeMem expect the DP select register to be
set to the same bank as the CSW register when the CSW register is
written to.  If the CSW already has the correct value, writeAP will
return without updating the select register.  This could cause the
readMem and writeMem functions to access the wrong bank resulting
in undefined behavior.

This problem can be reproduced by reading from another bank immediately
before readMem or writeMem.  An example of this is reading the IDR
register right after halting the target processor in the memory test in
basic_test.py:
print "MEM IDR: 0x{0:x}".format(transport.readAP(0xFC))

On the KL25 freedom board the following output is produced:
------ TEST READ / WRITE MEMORY ------
MEM IDR: 0x4770031
READ32/WRITE32
write32 0x81592C8C at 0x20000001
read32 at 0x20000001: 0x4770031
ERROR in READ/WRITE 32

This patch fixes the problem by always updating the DP select in register
in writeAP if it is out of date.  The select register will not be written
unnecessarily since writeDP checks if the select register is up to date
and returns early if it is up to date.
Merge pull request #44 from c1728p9/master

[Transport] Fix readMem and writeMem by writing to DP select
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.
Merge pull request #46 from c1728p9/master

[Board + gdbserver] Fix hanging on windows and allow target to be specified explicitly
Update usage of PyOCD to pyOCD
Merge branch 'master' of https://github.com/mbedmicro/pyOCD

Conflicts:
	README.md
Merge pull request #47 from sg-/master

Change usage of PyOCD to pyOCD
Add halt and resethalt during flash program
Merge pull request #49 from ECNU3D/master

[TARGET] Fix #48 for unexpected program running (reset and halt)