Clean up whitespace (consistent use of tabs), add more docs/comments

No functional changes here, just a change to consistently use tabs for indentation, as that seemed to be the bulk of the repository's whitespace.

Might also make sense to add an [EditorConfig](http://editorconfig.org) to try & enforce what whitespace conventions are meant to be used.

I did my best to follow what conventions I saw, though I erred on the side of more explicit DocBlocks (e.g., `integer` instead of `int`, fully-qualified class names, etc.).