Merge pull request #2 from dwtj/master

Added frame_data(), receive_message(), and fixed heartbeat() and ping()
Merge pull request #4 from dwtj/master

Implemented `aux.py` and some of the simpler command handlers.
Made error happen if incorrect number of data bytes are received
Changed docs slightly
Added some partially implemented functions in oi and servo
Merge David Alex changes???
Temporarily added manual ping message read/write to main.
Merge branch 'master' of git://github.com/aore/mars-rover into aore-master

Conflicts:
	control/comm.py
	control/servo.py
Fixed sonar distance conversion and reverted from linear width to angular width for object detection (i.e. Lab 9).
Merge https://github.com/asr1/mars-rover into asr1-master
Re-added `aux.py`. It keeps getting deleted for some reason!
Reimplemented `aux.py` *much* more cleanly as `sentinel.py`.
Revised `comm.tx_mesg()` and `comm.rx_mesg()` to use `Sentinel`. Also:
- Moved communication protocol codes into `codes.py`
- Added helper functions to `Sentinel` for reading and writing integers.
Finished initial (i.e. untested) changes to `comm` and `sentinel`.
Moved the `tx_mesg()` and `rx_mesg()` functionality into `sentinel`.
Moved the rest of the relevant test functions from `comm.py` into
the `sentinel.Sentinel` class. Deleted `comm.py`.
Updated the subsystems to use a `Sentinel` object.
Fixed some simple bugs in `Sentinel` that prevented starting a
connection and sending a `ping()`.
Simplified control mode handlers in `control.c`. Added `rx_frame()`
and `tx_frame()`, and revised `echo_handler()` to use them.
Fixed MesgID in `codes.py` and resolved some warnings in C compliation.