(doc) Finish documentation.

Do not merge this until #49 has been merged. It will need rebasing.

This is all done in one commit. It can be fleshed out if necessary.