working block device interface (read/write requests)

some thought needs to go into separating block device
driver implementations from *instances* of block devices...
i.e. maybe device request handler threads should be created for
each individual device.