Add `whenM` and `unlessM` combinators
Add Feldspar.Memoize module

The Memoize module supports acceleration of functions through tabulation of
results.
Tighten constraints on test-framework-golden
Tighten the range of `b2i`

`b2i` will always generate a number in the range 0,1