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.
bl: switch to per-soc-arch bootloader builds

This allows for a single definition of the bootloader for
each of the SoC architectures (F1,F3,F4) and removes even
more of the code duplication for F1.