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 
Maybe keep it in "Filesystem" class as users are supposed to use getUserFolder()