Redesign `Monadic` to allow easier extension.
Add generalized variants of `unfold`.
Refactored and simplified `request` methods.
Move all loops to helper functions.

Turns out that closures are more effective when they're created using
inner functions (`loop` etc.).
Refactor `stepBind` to use inner loop.
Add `fold` over inputs. Fix calling finalizers.

Add example to `Util`.