1. Moved Volume to separate file
2. Created IVolume interface and implemented current behaviour in implementation of new interface — VolumeJBOD
3. Replaced all old volume usages with new VolumeJBOD. Where it is unnecessary to have JBOD — left just IVolume.
4. Removed old Volume completely
5. Moved StoragePolicy to separated files
6. Moved DiskSelector to separated files
7. Removed DiskSpaceMonitor file
True reservation (IVolume::reserve()) will not takes compression into
account, and you aggregate a lot of data then it will likely fail even
though it can be completed, but just because you have big
max_bytes_before_external_group_by and huge max_threads it will fail.