Change Windows usb backend to hidapiusb

Signed-off-by: Michael Minnick <michael.minnick@freescale.com>
Improved USB backend selection logic.

- hidapi is preferred on Windows, but pyWinUSB will be used instead if
  hidapi is not present.
- The user can override the default USB backend selection by setting a
  PYOCD_USB_BACKEND environment variable.
- Moved logic to select USB backend to interface.__init__. mbed_board
  now just imports the preferred backend name.
- Added isAvailable flag to all of the USB backend modules, which is
  also copied into the backend classes.
- Some minor cleanup of hidapi_backend.