Don't support streams.

Streams would be annoying to support on top of dynamic VHDs.
Separated reading of files sand VHD headers.
Embarrassingly inefficient implementation of dynamic VHD.

Allocates way too much memory and thus grinds forever in GC.
Added hard disk base class.
Apperently the documentation has the parameter meaning swapped.
Dynamic VHD that does not perform like a dog.
Added a generic method for reading a subset of blocks.

Probably could be made to be a lot nicer.