switch to doxygen for api docs
general cleanups and enhancements