Move the generation of test 'programs' into a module called Patterns

These can be used to help test any vhd implementation, not just
this one.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
... and actually add the Patterns module this time

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Move the post-test verification logic to a library

This should allow us to interpret an I/O 'program' and then
verify the results on disk look like how we expect.

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

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