Converted to FP Complete Haskell Center
Experimental refactoring.

* Unified Fold type.
* Support for Foldable.
* Use Step to allow short-circuiting.