Refactor sample/state code.

Set motor state in a single function. Clear sample at the beginning
of each collection loop.
Add project compilation with CMake.

Build project with CMake. Replace ChibiOS submodule with a fork of
ChibiOS that uses CMake: git://github.com/tegesoft/ChibiOS.git.
Change CMake options to use FP hardware.
Add submodule update scripts to git_hooks.

Symlink .git/hooks to git_hooks to use uprate scripts. Modified from:
https://github.com/chaitanyagupta/gitutils/blob/master/submodule-hooks/
post-merge-checkout
Add remote with CMake support to ChibiOS submodule.

Tegesoft branch/mirror of ChibiOS repo contains CMake build support.
https://github.com/tegesoft/ChibiOS/tree/tegesoft
Update ChibiOS submodule to include CMake build support.
Updated build script.
Update ChibiOS submodule to include CMake build support.

Conflicts:
	firmware/ChibiOS-RT
Added nanopb include directory.
Added generated Test proto files.

Need to modify CMake build system to automatically run protoc on the .proto
file so that these files are generated and can stop being tracked.
.cmake file cleanup; removed single-precision const option.
Changed -Os to -O2, added -mno-thumb-interwork.
Skip updating git submodules if any are dirty.
Update ChibiOS and Singleton submodules.

Singleton: Disable CMake build test option by default.
ChibiOS: Add new remote. Adds CMake options to build binary or hex
         file output.