Cleanup filesystem setup code

- Move the logic of setting up the filesystem from "all over the place" to `\OC\Files\Factory`
- Seperate out logic of setting up the filesystem for object storage based systems (cc @butonic)
- Remove filesystem state from `\OC\Files\Filesystem`
- Let the server container keep track of the state instead

cc @DeepDiver1975 @PVince81 @th3fallen 
Is this required for legacy classes? Should be done in legacy code then.