Fix coverage bug, add tests and move demos.

Using midje for testing now. Separating the
demos into docs just makes sense.