Documentation with Doxygen

Some work to improve documentation.