F3 bootloader: separate library_bl.mk

The PiOS source files are not needed for the bootloader
so this drops that dependency.
F4 bootloader: separate library_bl.mk

The PiOS source files are not needed for the bootloader
so this drops that dependency.
F3 Firmware: use library_fw.mk

This moves the common definitions into library.mk and the fw
specific source files to a library_fw.mk
F3 library_bl.mk: use common library.mk for shared defs
F4 Firmware: use library_fw.mk

This moves the common definitions into library.mk and the fw
specific source files to a library_fw.mk
F4 library_bl.mk: use common library.mk for shared defs
F3 BL: add required files to library.mk
F4 BL: add required files to library.mk
heap: add heap implementations for SRAM and CCM SRAM

This provides an abstraction for pios drivers to allocate RAM.

The normal SRAM heap is DMA-safe.  The CCM SRAM heap is NOT DMA-safe.
link map: add heap segment for f1 bootloaders
makefile: add pios_heap.c to all BL, BU and FW builds
heap: use pios malloc in common drivers
ut logfs: adapt logfs unit test to pios_malloc API
heap: use pios heap in f1 drivers
heap: use pios heap in f3 drivers
heap: use pios heap in f4 drivers
fast heap: enable support for fast heap on f3 and f4 targets

The STM32F3 and STM32F4 SoCs support a fast (zero wait state)
RAM called CCM RAM.  Enable usage of this RAM in PiOS for these
systems.
uavobjmgr: use fastram for uavo and event structs

Saves 5KB of regular heap on flyingf3
heap: use independent pios heap for bl and fw

PIOS_malloc() no longer depends on FreeRTOS but rather provides
a full implementation of the APIs that FreeRTOS expects from a
heap allocator.
heap: use sim-specific version of pios_heap