Storage/VD: make use of the image type (hdd/dvd/floppy) for sanity checking when creating disk images
Storage/VD: Cleanup VD plugin handling. One shared object can now support an arbitrary number of image backends instead of just one like before
IPRT: Filename extension versus suffix cleanup, long overdue.
Storage/VD: Add support for different sector sizes (only opening and reading and writing images, not creating them with a sector size other than 512 bytes)
Storage: Propagate errors when closing a file but free everything nevertheless (see @bugref{6791})
Storage/Parallels: Fix hang when creating a snapshot
header (C) fixes
Storage/Backends: async/sync I/O unification, remove separate entries for sync and async I/O callbacks, remove unused code
Storage: Preparations for the sync/async I/O unification
Storage: Fix regression introduced when adding VD_OPEN_FLAGS_SKIP_CONSISTENCY_CHECKS resulting in non working online merging of snapshots
Storage/Parallels: missing initializers (warning only)
Storage/Parallels: Include asm.h for ASMByteSwapU32 used when converting endianess on big endian architectures
VD: Interface cleanup. Merge the two involved structures (generic interface descriptor and callback table) into one, remove the duplicated interface wrappers in the backends and move the interface definitions into separate headers separating public and private interfaces.
VD/Parallels: Cleanup, fixes and implement support for parallels image creation to make I/O testing possible
Parallels: Fix possible data corruption
Storage: Small cleanup. Drops VDImageIsAsyncIOSupported, it is completely unused and the best behavior is to fail in VDOpen like we do for all the other flags
Storage/Parallels: Fix regression introduced with r65918. Don't delete the parallels image when changing the open flags
Storage: a few warnings and a typo
VD: Move the generic virtual disk framework + backends to src/VBox/Storage and rename the files to get rid of the HDD part because it supports floppy and DVD images too