More QuickCheck options

This is a fix for #11. I added all options currently present in QuickCheck's Args record. 
Replaying works by printing out a replay token when a test fails:

```
% ./test                                                                                  
Properties
  sort == sort . reverse: OK
    100 tests completed
  sort == reverse . sort: FAIL
    (Replay token: 3 1062319520 40688)
    *** Failed! Falsifiable (after 4 tests and 3 shrinks): 
    [0,1]

1 out of 2 tests failed
% ./test --pattern "Properties/sort == reverse*" --quickcheck-replay "3 1062319520 40688"
Properties
  sort == reverse . sort: FAIL
    (Replay token: 3 1062319520 40688)
    *** Failed! Falsifiable (after 1 test and 3 shrinks): 
    [0,1]

1 out of 1 tests failed
```

I also added the minimum version bound on stm to fix #17 and changed a comment where it says SmallCheck instead of QuickCheck.