Improve BLOCK_DEVICE

* better descriptions of read and write semantics
* add a 'disconnect' operation and a Disconnected error