Adding support for user context for symfony HttpCache

Moving most of https://github.com/FriendsOfSymfony/FOSHttpCacheBundle/issues/177 to the library.

*TODO*
* [ ] Documentation (see also https://github.com/FriendsOfSymfony/FOSHttpCacheBundle/issues/178 but note that things changed since then)
the order here is correct. i want some test headers.

the reason to merge is so that i can do the right headers in the tests below. i guess i have to split the two.