Clearly mark final classes as such

We need to be straight-forward with other users of the API what our
intensions are.
findbugs: remove unnecessary comparison
findbugs: better exception handling