Only mount the storages for the user once

`Filesystem::initMountPoints()` is called in various places to get the filesystem loaded for sharing.

Currently every time the method is called the mount for the user will be overwritten by new instances of the storage which causes an overhead in case of external storage (having to re-initialize the connection), messes with the locking wrapper(a new instance will be created and the old one, holding any open locks is thrown away) and probably breaks some more assumptions regarding storages and storage wrappers.

This adds a basic check to make sure we only setup the mount points for each user once

cc @DeepDiver1975 @PVince81 @th3fallen