First pass at a testing infrastructure

For now, we're going with hspec. It can run HUnit, QuickCheck and SmallCheck tests, and has a nice syntax.

Tasty seems great but there's no working hspec integration package, and hacking one together was too much work for an afternoon. We can certainly use it or test-framework for our (forthcoming) golden tests separately, at least until there's a proper hspec runner for tasty.