blkfront: make 'connect' block properly

This is necessary because devices are plugged asynchronously.

We still need a device naming scheme: currently xen devices have
funny names like '51712' '51768' etc.

This 'pair of Hashtbl.ts with Lwt_sequence.ts full of waiters'
seems like a common pattern. Perhaps it should be factored out.

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