Minor improvements to DFS classes

> Status: for discussion

Makes the API more extensible, and more open to new stack bundles. Usage of those changes is illustrated in https://github.com/bdunogier/io-legacy-dispatcher-bundle/pull/1:

- the singleton added a requirement for an extra reset;
- `resetDBBackend()` is used to reset the backends once the kernel is built;
- A service, declared in the extension, is injected to the INI settings pre kernel build
wouldn't it be better (cleaner) if this was injected by the Legacy kernel so handler is set instead of having container calls and silent fallbacks to eZDFSFileHandlerDFSBackend? :)