[Minor] cleaned up doc and implemented missing toString() and equals()

A number classes had JavaDocs with @see parameters on overriding
methods. This was changed so that they were removed, as they are not
needed.

In some classes the toString() methods were missing, as well as equals()
and hashcode() they were now added
[Major] major rewrite of the privilege validation.

Now the PrivilegeContext object is central and once the user logged in,
this object is bound to a ThreadLocal. From then there is no further
need to interact with the PrivilegeHandler - this allows for
authenticated users to get a remote copy of the PrivilegeContext so that
on a remote client, the user can check for permissions, without having
to do the round trip to the server.

A code review of this change would be good, but preliminary tests show
that it works. A test should now be implemented to check if getting a
remote copy also allows for authorization.