Add NullEst as superclass for FoldEst
Use Monoid as superclass for FoldEst

There're following reasons to not define custom type classes:

  1. For fold we need starting value thus default value is needed

  2. I've yet to see estimator without empty so to make code simple
we can use them both and simple add Monoid instance
Rewrite manifest folds

 1. Monadic fold is added

 2. Fold now use dictionaries to carry additional operation on
accumulator. Whether it's a good idea remains to be seen.
It on one hand simplify Fold but create a lot of complexity
with dictionaries

There's no conversions between folds as of yet
Add comonad-like functions for both variant of fold
Documentation
Remove SkipNaN there're better approaches