Allow to replace the file system access of filechooser.

This PR will allow an easy replacement of the underlying file system access of the file chooser, so it could be backed by protocols like FTP, SMB, ... (and even [VLC Web Interface](https://gist.github.com/schlamar/5240832)).

A few things has to be done before merging, especially documenting the changes more thoroughly (e.g. that `sort_func` is now a member of `file_system_impl`) and checking the code style, but I wanted to hear the general opinion about this proposal first.