Adds documentation

* First serious effort in documenting the API.
* Brief explanation of several setup steps.