malloc: provide a full independent heap implementation

PIOS_malloc() no longer depends on FreeRTOS but rather provides
a full implementation of the APIs that FreeRTOS expects from a
heap allocator.
board-info: drop all defines for max devices

Device instance memory is now dynamically allocated even when
FreeRTOS is not in use.