Move the generic error printing out of the individual backends

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Move the backends into a Backend module

This separates them from the command-line parsing, device
setup glue.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Add interface documentation for the Storage.S signature.

Note: describing this interface highlights how strange it is.
The interface should be simplified to hide some of the xen request
artifacts leaking through.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>