Cache - remember BlockContext for Varnish, Ssi and Js

Depends on https://github.com/sonata-project/SonataBlockBundle/pull/77

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | 
| License       | MIT
| Doc PR        | https://github.com/symfony-cmf/symfony-cmf-docs/pull/180

When using Varnish, Ssi or Js cache the settings passed here are lost:

```
{{ sonata_block_render({
    'name': 'rssBlock'
},{
    'maxItems': 2
}) }}
```

Taking Js as example, an url is generated and added to some javascript. This javascript is injected in the page. When the page is loaded, the javascript calls the url to retrieve the block content. By adding the settings passed to the BlockContextManager to the ``extra_cache_keys`` and then as query parameters to the url it is possible for the cache adapter to reconstruct the BlockContext.