Add a block driver registration and lookup mechanism

The drivers are associated with string names such as "local",
"iscsi" etc. The driver module then has functions

connect: to open a named instance of this type
read, write: to perform I/O

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

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Merge pull request #73 from djs55/add-block

Add a dependency on mirage-types BLOCK interface