Initial ChibiOS experiment:

- Added ChibiOS git submodule
- Copied ARMCM3-GENERIC-KERNEL demo into chibios_test/
- Modified demo for CM4 with FPU enabled
- Copied STM32F405 linker script and modified to add memory area for CoffeeFS
- Existing piksi_firmware sources built by demo Makefile
- Updated USART DMA ISRs to work with ChibiOS
- Calling init() from main which inits the clocks, FPGA and serial IO
- Tested SBP serial IO - working!
- Updated EXTI1 ISR (from FPGA) to work with ChibiOS
- Tried calling manage_acq() and friends, seems to work for a while then crashes
Increase stack sizes and handle NAP IRQ in a separate thread.
Use binary semaphore to lock SPI.
Do not call spi_slave_deselect() from spi_setup()

Instead just set SPI CS lines directly to avoid the call to release the semaphore.
Set the USART DMA ISR priority.

ChibiOS requires ISR priority lower than the default to avoid conflict with kernel ISRs.
Enable all debugging options in ChibiOS.
Send tracking state and check NAP error register in ChibiOS port.
Increase process_stack size.
Call screaming_death on ChibiOS panic
Increase stack size, misc changes in main()
Update ChibiOS and Makefile to fix multilib bug when linking
Fixing size command in Makefile
Fix includes in main.c
Hopefully this fixes the loading timeout errors.
Add note to improve detection of timing strobe error in the future.
Add threads for the solution timer, SBP message processing and Nav Msg processing.
Fix warnings.
ChibiOS port now sending observations and calculating solutions.

Still a small bug in solutions - sometimes the solution is calculates ~60ms early (about one ToF?)
Reduce exit priority below solution timer priority.
Removing old main in preparation for ChibiOS