Fix build.
Refactor code.
Add Doxyfile and update code documentation.
Add link to online code documentation in the readme.
Update gh-pages submodule.