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 
Hmm so basically IMountManager is actually a IMountProviderCollection ? or IMountProviderManager ? (I know, silly names).

How about IMountFactory if it's generating mounts ? It could internally use the IStorageFactory which itself instantiates the IStorage instances, right ?

I'd also like to make sure that the names make sense, if possible in a way that implicitly tells their relationship. Manager/Provider can be confusing.