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
DMG: Fixes.
DMG: Fixes for making vbox-img convert work.
DMG in XAR fun, part 1 (probably will everything burn as I had to change static linking).
DMG.cpp: All callback method implementation shall be using DECLCALLBACK! Eliminated a few really stupid goto that would've made Dijkstra cry.
doxygen
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})
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
Doxygen, comment typos.
VD: API to repair corrupted images
Storage: Add async discard API
Add logging groups
VD: Initial support to discard unused blocks in an image + support for VDI images
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.
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
DMG: Reject VD_OPEN_FLAGS_ASYNC_IO, correct fix
DMG: Reject VD_OPEN_FLAGS_ASYNC_IO
Storage: a few warnings and a typo
DMG: Check for the magic values before converting the footer structure to host endian byte order to avoid assertions if an image with another format is checked
Storage: Do not assume CD image has to include ISO9660 filesystem.
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