Added doxygen support, documented the classes, and added some other design documentation.