Add documentation comments to most files.
Add Doxyfile for documentation generation