Fixes servo code and firmware, updates example
Fixes a typo in the servo example
Refactors arduino lib slightly, fixes stop function, adds timer example

The stop function originally simply killed the arduino commuincation
thread, but did not send a packet to stop motors to the arduino, so
the arduino was continuing to run motors at whatever speed they were
last run at. The communication thread now calls self.cleanup() before
quitting. This function sends a final packet to the arduino.

In order to do this, I refactored out the code for writing an
output packet and reading in an input packet into class functions.
Adds preliminary IMU support, plus IMU example
Fixes servo to allow [0, 180]
Fixes compass heading calculation
Fixes analog input bug