This commit refactors DiskFormat 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
This commit relocates unit tests to a folder structure that matches the source code structure. Fixes #1128