New simpler control loop and sample buffer implementation.
Update ChibiOS-RT submodule.
Add rear wheel rate to Encoder submessage.
Add generated Python proto buff file.
Symbolic derivation discrete state space.

Converts a proper 1st order continuous SISO transfer function to discrete state
space form using a Tustin approximation and a balanced realization.
UpdatChibiOS submodule.
Fix sleep bug and final bytes writing bug.
Add fork encoder calibration and homing code.

Also fixed a bug in the rear_motor_controller.cpp file which was initializing
the rear motor controller with the wrong encoder peripheral timer.

Cleaned up the implementation of the calibration and homing code to use a
std::array.
Remove unused source file.
Remove unused system stub functions.
Rename PeripheralInit files and functions.
Alphabetize build sources.
Rename VectorTable files, rename a few methods.
Merge remote-tracking branch 'hazelnusse/eigen' into gainschd

Conflicts:
	firmware/Makefile
Use an array to store controllers in GainSchedule.
Add threshold shell commands.