Add documentation

This does a first pass on API docs. I think I caught everything, but
it's hard to know for sure. One thing is that there are a bunch of class
members that have no docstrings, so they don't currently show up in the
API docs even though they're specified in the autoclass calls.