Support property introspection
Add the ability to retrieve a list of all properties, including their types and in which states they are available/writable.
The list could include all properties for all drivers, or it could depend on the particular driver being used. The former would be more useful, but the latter would be simpler.
This feature would be useful when libblkio properties must be exposed through a higher-level configuration API, for instance when integrating libblkio into fio [1] and nbdkit [2]. Currently, this requires providing a catch-all option that is then parsed into separate libblkio properties, or patching the integration whenever a new property is added, or both.
Suggested-by: @rwmjones