bl: docs for bootloader protocol
bl unified: unified bootloader implementation for F3 and F4
bl unified: add capabilities message extensions

Extends capabilities message to explicitly describe all of the
partitions that the BL has access to.
bl unified: add support for wiping a partition
bl unified: add support for read/write waypoints partition
f3 usb: extend USBHOOK API on F3 to include PIOS_USBHOOK_Deactivate

This empty function is required so that the common BL image can
safely call this on all platforms just prior to jumping to FW image.
bl unified: make discoveryf4 use unified bootloader
bl unified: make flyingf3 use unified bootloader
bl unified: make flyingf4 use unified bootloader
bl unified: make freedom use unified bootloader
bl unified: make quanton use unified bootloader
bl unified: make sparky use unified bootloader
bl unified: make revomini use unified bootloader
bl unified: make revolution use unified bootloader
bl: remove (now) redundant bl implementation files for F3 and F4 boards
bl helper: remove write support for F3 and F4 targets

F3 and F4 boards are now all using the common bootloader which
does not rely on the BL_HELPER for writing to flash.
According to https://bugreports.qt-project.org/browse/QTBUG-13668, updating
ranges of data currently is not supported. Removing this code simplifies
the UAVO Browser.
Fixed comments and formatting.
Fixed bug by which the treeView model could change but the
UAVOBrowserTreeView was not aware of it.
Changed QModelIndex to reference the root node, instead of the
settings node. This makes no difference to the update scope
(see prior commit regarding QTreeView updates), but is more
logical to read.