Add counter generator
Add unfold, iterate. Implement other generators using unfold
Add a simple, throwing assertion that can be used with any test runner that understands assertions that throw