block: clarify the buffer-handling constraints for read, write

Each of the page_aligned_buffers must be a whole number of sectors in
size. There's no limit to the number of sectors per buffer or the number
of buffers per request.

I considered adding a notion of 'async' vs 'sync', but we already allow
issuing async operations (instances of 'a io), and synchronising with
them ('bind'). The plan is to start with O_DIRECT-like I/O at the bottom
and then consider adding buffering later. It might be better to always
perform buffering at the application-level, rather than having a
one-size-fits-all policy in the block 'layer'.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
block: add a 'disconnect' operation and a Disconnected error

When we 'disconnect' the underlying implementation is able to free
resources associated with the device. The 'disconnect' function is
guaranteed to succeed: it never fails (for example) if a remote server
cannot be reached.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
BLOCK: further clarify the current error behaviour of write

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

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Merge pull request #2 from djs55/block-clarifications

Improve BLOCK_DEVICE