Basic property tester

This is a very simple system for testing properties using randomly generated
data like Haskell's QuickCheck does. It doesn't yet provide many helpers to make
data generation easier.