block: grab a device model reference in blkdev_get_no_open
Opening a block device needs to ensure it is fully present instead of
just the allocated memory. Switch from an inode reference as obtained
by bdget to a full device model reference.
In fact we should not use inode references for anything in the block
layer. There are three users left, two can be trivially removed
and the third (xen-blkfront) is a complete mess that needs more
attention.