everything (Mercury)

we reimplement all our streaming, by rewriting all the <<() cases
individually. zero STL. The OStream buffer is now a C++ string.

also added exception handling to driver controls. However you have to
paste the code into each main.cpp. *someone else* should figure out why
it can't be in a header file

fixed generate.py bug, fix type error of bms.rx.trip

removed need for runtime type information

rewrite steering wheel, now LED buttons light up.

fixed CAN TX and RX, tested sending and receiving motor controller
packets. works. Restructured all of CAN in the process.