Implemented Symfony reverse proxy support for user context hash.

> Ref #26
> Relates to https://github.com/ezsystems/ezpublish-kernel/pull/1025

Finally the PR :smile: 
This adds support for Symfony RP for user context hash feature.

For this to work, you need to:
* Make your `AppCache` class extend `FOS\HttpCacheBundle\HttpCache` instead of `Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache`.
* Ensure `USER_HASH_ACCEPT_HEADER`, `USER_HASH_HEADER` and `USER_HASH_METHOD` constants match your configuration (cannot rely on semantic config here as we're way too early for that).
* Ensure `SESSION_NAME_PREFIX` matches your environment.

In any case, it is possible to redefine those constants to fit your configuration.

## TODO
* [x] Implement user context hash support for Symfony RP
* [x] Clear documentation on how to set it up
* [x] Make user context hash response vary on sessionId(s) only as Cookie may contain undesired info (e.g. analytics)
* [x] Try to do some tests
> hm, the signature of the HttpCache constructor has $options. why not have this and then keep a copy of $options for us?

Because it's ugly ? :smile: 
More seriously, I really don't like the idea of keeping unrelated information. Sounds more like a hack where the constant solution keep it clean.

> but i think it should be ok to set all options in constructor and not later. they should not be dynamic i guess.

This is precisely why I use constants :wink:. 
IMHO this would be complex for no gain in the developer perspective. In base `HttpCache` you have `getOptions()` that you can override... That's why I'm proposing this alternative, even if I don't like it much.