Generify vhd, too
sparsebundle: Minor fixes

- Allocate memory in disk_sparsebundle() constructor
- Constify constructor parameter
- Be careful with invalid fds
sparsebundle: Remove old TODOs
sparsebundle: Use pointers to member functions
sparsebundle: Don't write zeros in unallocated space

Also close files when we're done with them.
sparsebundle: Handle locking properly
disk_generic: Distinguish between unknown disks, and unmountable disks
disk_generic: Iterate using index instead of pointers
sparsebundle: Fix spacing in Makefile