Add a public api for apps to add mounts

This adds a public api which apps can use to add additional mountpoints in a more structured way then listening to hooks.

First PR for #12216

cc @PVince81 @DeepDiver1975 
I wonder, are PersonalMount and MountPoint public classes ? Or should we also "hide" them behind factories ?

In general it feels a bit uncomfortable when I see mountpoints instantiated directly like this.
What do you think ?

Also: will other app's storage providers also need to instantiate `new MountPoint()` directly ? Do they need to implement their own IMountPoint ?