Make stuff private and clean up docs

* Make stuff `private` if possible.
* Remove `@see` from `private` stuff.
* Remove non-informational docs.
* Rewrite a test to use `expectedException`.
* Optimize `use` clauses.
This is breaking change. Don't forget to put it into the release notes.