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 
`IMountProvider` does the actual work of generating mounts and will have multiple instances (1 for each app that adds mounts and 1 for core), `IMountManager` does the aggregation of all providers and will only have a single instance