Doc everything

This branch reviews all of the documentation on our major classes, and ensures that all major public classes and methods are well-documented.

Close #765.
Can we word the Returns statement so that we can make it more obvious that an Axis can be returned?

Not sure on this one, but does "number | Axis" work?