Improve performance by coalescing as much I/O as possible

When writing blocks, avoid chunking them into individual sectors.

For the special case of writing empty blocks, perform the writes
in multiples of 2MiB if possible.

When verifying data, large chunks and then split into sectors
in-memory.

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