Add haddock documentation for the project

This adds haddock documentation for all functions in the package. Which
should have been done a while ago.
Add automatic documentation generation with travis

This adds automatic haddock documentation generation and deployment to
github pages through travis-ci. Links to the build status and gh pages
documentation still need to be added.