[Config][FrameworkBundle/Translation][Router] Interchangeable ConfigCache

We would like to use a custom implementation of ConfigCache to employ a modified caching strategy. Basically, it is about special kinds of resources that might change on runtime also during production (will post more details if anyone is interested).

Currently the ConfigCache implementation is not exchangeable, which this what this PR addresses. I have tried to keep BC as far as possible. If that is not a hard requirement, I could also come up with different implementations.

Alternatively, a factory method for the ConfigCache in client classes could do.

Additionally, the kernel uses ConfigCache for the service container itself. We did not touch that part because there is probably no useful way to configure or inject alternative implementations before the container itself is available.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes (refactoring and added flex point)
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        | none