Usb fixes

This PR take in @sjwilks's Changes for compiling with latest libopencm3 and the adds 3 fixes:
1) Indexing of the enumeration strings.
2) Bootloader wiping it' self out because the Flash API changed.
3) Changed the Product ID for bootloader mode back to 0x0001

We now have Clean enumeration

```
Dec 16 14:35:39 px4-dev kernel: usb 2-1: new full-speed USB device number 23 using ohci-pci
Dec 16 14:35:39 px4-dev kernel: usb 2-1: New USB device found, idVendor=26ac, idProduct=0001
Dec 16 14:35:39 px4-dev kernel: usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 16 14:35:39 px4-dev kernel: usb 2-1: Product: PX4 BL FMU v2.x
Dec 16 14:35:39 px4-dev kernel: usb 2-1: Manufacturer: 3D Robotics
Dec 16 14:35:39 px4-dev kernel: usb 2-1: SerialNumber: 0
Dec 16 14:35:39 px4-dev kernel: cdc_acm 2-1:1.0: This device cannot do calls on its own. It is not a modem.
Dec 16 14:35:39 px4-dev kernel: cdc_acm 2-1:1.0: ttyACM0: USB ACM device
Dec 16 14:35:43 px4-dev kernel: usb 2-1: USB disconnect, device number 23
Dec 16 14:35:45 px4-dev kernel: usb 2-1: new full-speed USB device number 24 using ohci-pci
Dec 16 14:35:46 px4-dev kernel: usb 2-1: New USB device found, idVendor=26ac, idProduct=0011
Dec 16 14:35:46 px4-dev kernel: usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 16 14:35:46 px4-dev kernel: usb 2-1: Product: PX4 FMU v2.x
Dec 16 14:35:46 px4-dev kernel: usb 2-1: Manufacturer: 3D Robotics
Dec 16 14:35:46 px4-dev kernel: usb 2-1: SerialNumber: 0
Dec 16 14:35:46 px4-dev kernel: cdc_acm 2-1:1.0: ttyACM0: USB ACM device
```

and  happy VM

![image](https://cloud.githubusercontent.com/assets/1945821/5464737/96cc4fde-8530-11e4-96f7-82914099e9f5.png)

Is this library downgrade vetted? Because we can't go from GPL to LGPL without the consent of each and every author.