[ConfigCache] Use non-local files resources

This PR is another try to use non-local file resources in ConfigCache, like #7230

There are 2 main changes:
- A new interface "MutableResourceInterface" which extends "ResourceInterface" for compatibility and adds a new method "isMutable()".
The metafile is now created if at least one resource is mutable, and not according to the debug flag like before.

- "isFresh()" method can take as first argument an instance of "RefresherInterface" which has only one method: "refresh(MutableResourceInterface $resource)"
It serves for example to reinject the database connexion after unserializing ressources

Compatibility should be maintained.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7230
| License       | MIT
| Doc PR        |

TODO:
- [ ] Comments