Fix read when the file length isn't a multiple of sector_size
Fix read when the file length isn't a multiple of sector_size

Previously if a file was not a whole multiple of sector_size, we would
ignore the last few bytes on the end. This is unfortunate because some
programs (e.g. qemu-img) deliberately only allocate a few bytes of the
last cluster/sector of a disk.

This patch rounds up `size_sectors` such that it includes all the data
in the file. The `read` call needs to special case reads which include
the last sector: we expect to receive `End_of_file` on those reads
internally, which we need to catch. We also guarantee that data not present
in the file is read as zero.

Fixes #59

Signed-off-by: David Scott <bfcdf3e6ca6cef45543bfbb57509c92aec9a39fb@recoil.org>

samoht/mirage-block-unix,djs55/mirage-block-unix,mirage/mirage-block-unix