[4.2] Added FilesystemInterface

I was trying to write another class with the same public interface as `Filesystem`, but the only way for me to inject it into any laravel classes was for me to extend the class `Filesystem`, then override every single method. That seems a bit hacky to me. Surely the proper way to do it would be to have a `FilesystemInterface`. I can't be the only one wanting to use a remote filesystem where by I wanted my own implementation to talk to it.