* start on panda abstraction layer
* handle bulk transfer in library
* Safety model abstraction
* Abstract hw type into library
* Handle disconnect
* RTC stuff
* Fan control
* Health
* Panda fw version
* Read serial
* Power saving
* Power mode
* Cleanup pigeon thread init
* Rename safety setter variable name
* Remove comment
* Unused global cleanup
* malloc -> new
* whitespace
* Use std::thread
* Use std::thread for safety setter
* Cleanup igntion_last global
* Heartbeat
* logd
* More global cleanup
* Put back sleep
* ir pwr
* Always broadcast health
* init struct with zeroes
* Fix eon build
* fix race condition
* fix Adeebs comments
* abstract can send and receive
old-commit-hash: 80acb32825