relaxed dependencies
Made the tests use a test-suite section in the cabal file.

This caused a small cascade of other cabal file changes, including:

 1) upping the min. cabal version
 2) Newer cabal doesnt't glom all dependencies together, so deps have to be repeated now.
 3) removed the testing cabal flag (in favor of the more consistent --enable-tests)

The duplication due to (2) can be mitigated by having the tests and executables depend on
the library directly, and work with the exposed API. That would probably work fine for
moo, the executable, but may or may not work depending on how the tests need access to
internals.  (the CycleDetection module is currently used by the test suite, and as such,
this little refactor won't work without changing the module visibility or the tests.) That
change would also reduce compile times, as the library build would be re-used.