[BUGFIX] Simplify and stabilize security context hash calculation
This simplifies ``Security\\Context::getContextHash()`` and makes sure
that it never returns a hash over an empty string which could be the
The Security Context Hash used to be generated by iterating over a
list of "ContextHashComponents". Those could be influenced using the
The drawback of this approach is a pretty complex mechanism that is not
easy to comprehend. Besides resetting of the hash was error-prone and
could lead to hash components being ignored.
This also removes the method ``getRolesHash()`` that was neither
documented nor used outside of the ``Security\\Context``.
Releases: master, 3.0