copying differences: do a better job of identifying identical disks

To decide which blocks to copy, we need to work out which files
are the same on both paths up the vhd tree. Previously we used
string equality on filenames, which doesn't identify "foo" and "./foo"
as being the same. This would result in copying unnecessary blocks.

Instead we use a pair of vhd uuid (within the Footer) and
Filename.basename. The uuid should be enough by itself but I'm not
confident that all vhds will have been created with unique uuids
(for example I believe that qemu-img creates uuids full of zeroes)

Fixes #17

Signed-off-by: David Scott <dave.scott@eu.citrix.com>