allow `free-4.6`
Change test to a cabal test-suite

This way (1) the tests can be run with 'cabal test', and (2) users do
not have to install the tests and all its dependencies by default.