Exit with a non-zero code when a QuickCheck property fails.
Exit with a non-zero code when a QuickCheck property fails.

The test suite in tests/Tests.hs was using `mapM_ quickCheck` to test
a series of QuickCheck properties. If one of the properties failed,
the failure would printed to stdout, and when the end of main was
reached, zero ("success") would be returned. This made it difficult to
automate the test suite.

This commit uses 'quickCheckResult' instead of 'quickCheck' to test
the properties. The results are collected, and if any of them are not
'Success', then we exit with an "error" code of 1. If all of the
results are 'Success', we exit normally (exitSuccess).

triplepointfive/cereal,glguy/cereal,fpco/fpco-cereal,fpco/fpco-cereal,glguy/cereal,triplepointfive/cereal