This commit refactors VolumeManager to turn it into a proper factory class and to also include type hints to facilitate it's use from an API POV. Related to #1498