Vary cache on a user context

This PR is currently a work in progress for this issue https://github.com/ddeboer/FOSHttpCacheBundle/issues/30 

It add only the hash generation part, as the request/response stuff is dependent of the Framework.
It also add tests for creating an exemple on how to implement a varnish configuration to allow this feature.

It's currently WIP as there is no documentation for the moment.