[WIP] Moving the user context logic out of the kernel inheritance hierarchy.

fix #170

This is just a rough sketch but as we talk about other cache kernel features i wanted to show how this can look.

In fact, what we probably want is kind of an event handler for the kernel at this point. This should not get too complicated, but maybe just have a list of kernel "extensions" (bad name, its already used for the bundle config handler class) and call each in turn during handle. The setup would then be:

```
$kernel = new HttpCache($kernel);
$kernel->registerHandler(new UserContextHandler());
$kernel->registerHandler(new PurgeHandler());
$kernel->registerHandler(new BanHandler());
```
yeah, i guess there are several places we need. for example the invalidation.

i wonder how far we should go with this, if we want to use some event manager class for this. we seem to have preHandle, postHandle, pre/postStore, pre/postInvalidate, pre/postLookup maybe and so on. i propose we find an architecture that can be expanded and then just add the events as we need them? its not super flexible for reusing outside of our context, but otherwise we end up with extending 20 methods to use 3 of the events...