Make the DFS backend configurable

So far, the eZDFSFileHandlerDFSBackend class, in charge of reading/writing binary files to NFS was hardcoded, and directly instantiated by the MySQLi DFS handler.

This PR makes this handler swappable by any other class, so that more advanced handlers can be used.

One use-case is illustrated by http://github.com/bdunogier/ezdispatchabledfs, that replaces the handler with a dispatcher, and sends the calls to the appropriate one depending on what each of them supports.

### Todo
- [ ] Rebase
- [ ] Consider re-arranging interfaces. `factory` is required, at least optionally, like it is done now, so that more complex handlers can be instantiated. `supports()` isn't really required by the native handler, since it supports *everything*.