Adding support for user context for symfony HttpCache

Moving most of https://github.com/FriendsOfSymfony/FOSHttpCacheBundle/issues/177 to the library.

* [x] Documentation (see also https://github.com/FriendsOfSymfony/FOSHttpCacheBundle/issues/178 but note that things changed since then)
Move protected methods above private ones.