API Documentation

This pull request adds:

* Full API documentation
* Some basic package documentation
* Resolves all golint errors