First cut at a bootloader for the v2 board.
Fix flash erase magic numbers for F427.
Fix flash size detection for FMUv2 boards.
More sensible blink behaviour for single-LED boards.
Increase timeouts for larger flash devices.

Whitespace changes for Python style conformance.
Optimise the F4 flash erase pass to only erase sectors that need to be erased. This reduces erase time substantially on larger devices.
Moved VBUS sniffing back up
Replace the CRC table with a CRC generator function; this gets us back nearly 1KiB of code space on IO (which was previously maxed out).

Scratch in some "boot into bootloader" support for IO.
Update the F4 bootloader with some extra functionality:

 - On V2 boards, if FMU PWM pins 1 & 3 are tied together, the board will stay in bootloader mode while connected to USB. This should help work around the Windows driver registration issue. A standard Spektrum binding plug can be used to make the connection.

 - If the RTC backup register 0 contains 0xb007b007 when the bootloader starts, it will stay in bootloader mode indefinitely. This allows us to reboot from the app back to the bootloader. The token is cleared by the bootloader, so a second reset will re-boot the app.
Adjusted USB PIDs to new scheme
Add support for forcing the v2 FMU into bootloader mode by strapping two of the PWM output pins together.
Add a command for reading the OTP from F4-based boards. Bump the protocol revision to 4.
fix bug in bootloader otp reading code that prevented reading past first 4 bytes.
Merge pull request #3 from davidbuzz/fmuv2

fix bug in bootloader otp reading code that prevented reading past first...
px_uploader.py that supports otp code in bootloader well enough.
doesn't decode any of the certificate-of-authenticity data, but does recieve it correctly.
make px_uploader.py otp output a bit more verbose/thorough.
support reading serial area in a similar way to otp area.    just change to 0x2b packet type instead of 0x2a, and you can read 12byte serial in 3 words.
remove #pragma that snuck in, oops.
support reading serial area in a similar way to otp area.    just change to 0x2b packet type instead of 0x2a, and you can read 12byte serial in 3 words. - only tested now.
Merge pull request #4 from davidbuzz/fmuv2

Fmuv2
Merge branch 'master' of github.com:cvg/Bootloader_Private into fmuv2