Add detailed documentation to the driver API to help driver developers
create drivers that behave consistently. Specifically prescribes a
set of operational characteristics that a driver must conform to in
order to provide consistent behavior across different implementations.
Change-Id: Icb251ee724f9a0ac4fede702a367910de4ba95e3