Moar documentation

All interfaces, impl objects, and factory classes are fully JavaDoc'd.
The jUnit tests and exceptions have been ignored because they are not
necessary. If that changes, we'll obviously have to add JavaDocs.