Massive change.

Rename classes to more consistent scheme.
Add support for JSR-305 Nonnull annotations.
Add nullchecks when required.
Remove unnesasary null checks.