Update to use mirage-types BLOCK interface

Any implementation of BLOCK can now be used: for example, the local file backend can now use mirage-block-unix

The next step should be to push more of the backend/frontend setup logic into mirage-block-xen, so that you could create and attach a block device from a toplevel (because it would be cool)