Correct the definition of a KiB (!)

This reduces the size of the BAT (array) to a more reasonable value
on a max size disk.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
The geometry calculation needs to use int64s

A ~2 TiB disk will contain 41-bit sector offsets

This fixes the ~2 TiB unit tests and exposes a problem with the
0-sized tests.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Vhd_IO.create_dynamic: correctly round-up to 2 MiB blocks

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Fail with Invalid_sector if the sector is out-of-bounds

Note the read/write tests for 0-sized disks will fail with
this exception, as expected.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
test: only attempt to read and write sectors which exist

If a disk is 0 length tnen no sectors exist.

We still need some negative tests to check that such attempts
fail properly.

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