Added files to allow USB Bootloader on stm32F102CB(mavstation), device enumerates, need to verify flashing and checking code before using
flash sizes should be correct, TODO: test
updated openocd config to use new cortex -m format
Added pullup for force bootload switch for mavstation
fixed force bootload pin setting to work properly.  Also will jump to mavstaion firmware if flashed correctly at 0x08004000
Updated board identifier to be compatible with the uploader
Consolidated F1 USB compatability into main f1 files where possible
cleaned up formatting issues and uncommented flash lock
Fixed force bootloader pullup setting for mavstation
Forgot to add newline to stm32f102.ld
screwed up ammend
fixed usb clock not enabling on flow board.  Also refactored cdc init code
Further refactoring in cdcacm.c
Changes for compiling with latest libopencm3.
Fixed the Index mapping for the strings returned at enumeration.
Fixed erase causing the bootloader to be erased.
 API not takes logical Sector number the a physical sector code
Back to using Product ID of 0x0001
Merge remote-tracking branch 'kbrtny/master' into kbrtny-mav-f102

This was a by hand merge to incorporate Kevin's changes to support usb
bootloading on the STM32F102 with the fixes to the USB
Modified to build with upstream libopencm3 at
8a15cec6bf99f59065879a14895fb8af8a8a53e7
added -Wundef to the build  https://gcc.gnu.org/onlinedocs/cpp/If.html
without it the following code will not issue a warning

//#define PIGS 1
//#define DOGS 2

#if (DOGS == PIGS) not detected without -Wunded
#warning("DOGS == PIGS")
#else
#warning "DOGS != PIGS"
#endif
will not issue a warning (other than the pragma) and PIGS == DOGS is
true