Adding missing doc comments for all exported types

As mentioned in #221, we need to document all of our exported types, functions and methods.
Thanks for taking care of these, by the way :grin: We could probably use another pass over the tests to use `testhelper` assertions consistently, too. (Out of scope for this PR, naturally.)