Rewrite the raw disk support as a file format. This involves:
- Defining a structure to represent a file format,
- Implement an ordered probe to match formats to opened files,
- Move calls to preadv(2), pwritev(2) and fsync(2) in the API functions into the format-specific methods,
- Change the API functions into thin wrappers around the methods.
The ordered probe combines priority with capability. The priority is
based on the presence and location of metadata. The capabilities
are for writing and support for device special files. The intend is
to have the raw format probe as a last resort as ithere's no metadata
associated with the format.