Moving the user context logic out of the kernel inheritance hierarchy.

fix #170

This adds an event handler to the cache kernel. The setup is:

```
$kernel = new HttpCache($kernel);
$kernel->addSubscriber(new UserContextSubscriber());
$kernel->addSubscriber(new PurgeSubscriber());
$kernel->registerSubscriber(new BanSubscriber());
```

**TODO**
* [ ] Adjust documentation
* [ ] #178 for default behaviour
this is consistent with https://github.com/FriendsOfSymfony/FOSHttpCache/blob/master/src/CacheInvalidator.php#L139

what is the problem here? this does not look wrong to me:
```
$cacheKernel
    ->addSubscriber($bla)
    ->addSubscriber($foo)
;
```