(maint) Add API documentation generation.

Adding support for generating API documents using doxygen.
Updating all source files so that there are no doxygen warnings.
Adding documentation generation to Travis CI to ensure no future
warnings.
Ensuring facter library header files are free from implementation (save
templated types).