Changes to the USBUART to make it less likely to drop characters at higher baud rates.

USB UART seems to work fine at 115.2Kbps or 230.4Kbps, but starts to drop characters
as the data rate goes higher. This commit changes the usbuart ISR to fill a software
FIFO, and adds a low priority timer interrupt to run deferred processing to drain a
FIFO and send USB CDCACM packets, rather than calling the usb send within the UART
ISR.

Tested on native platform, up to 1.5MBps.
usbuart: Fix build error and clean up whitespace.
Fixed upgrade tool to build against current libusb-win32.
Use do {...} while(0) for PLATFORM_FATAL_ERROR() macro.
Merge remote-tracking branch 'upstream/master' into lpc17xx
[LIB] Updated to newest libopencm3
[BUILD] Don't throw error on already cleaned output
FIX: u{8,16,32} -> uint{8,16,32}_t to be compatible with new library

The use of u8, u16, u32 has been deprecated in libopencm3.
Update it with standard uint8_t, uint16_t, uint32_t types
FIX: FLASH_* collision with libopencm3 definitions

Resolve collision to FLASH_* from the libopencm3 by adding STM32F1_ prefix to the L1's
FIX: usbd_init compatibility fix

Updated compatibility with libopencm3 commit 113e5c22e6390ba072148315e83a5faa5ff7ce86
Merge pull request #24 from richardeoin/master

New contrib board
Added internal pull-up to PWR_BR.

o Prevent probe from inadvertently powering target.  If PWR_BR is
  allowed to float, the gate on Q1 (blackmagic_mini) will tend to be
  close enough to zero to turn the transistor on.  We activate the
  internal pull-up on this IO pin to force the transistor off.
Bugfix: Always apply the vector table magic number correctly.

Previously when the flash write length was less than the Chunk size the 2nd chunk write would re-calculate and apply an incorrect magic number
Add support for the SYS_WRITEC semihosting operation.

This is implemented in the same manner as QEMU semihosting
support, specifically, a SYS_WRITEC results in a single
character write to STDERR.
Configure SRST output as open-drain for BMP Mini hardware
stm32f1.c: On a read protected device, deny any other option action than erase.

Otherwise the first option action triggers an error, inhibiting further option
actions.
stm32f1: Fix handling of option byte write. Write needs to happend on erased option bytes.
stlink: Give the NRST check more time as otherwise some L1 discovery board stayed in the bootloader.
STM32F4: Recognize F401.
STM32F4: Add handling of second bank and dual boot devices.