Added a ton of documentation with doxygen. Cleaned up some code according to cpplint. Changed Makefile to generate object files.