Rework type classes.

Add estimator with hidden state. It's necessary for implementation
of robust variance, n-th central moments or any statistics which
depends on runtime parameter
Add type class for numerical sample's element

It's useful to work with weighted and unweighted data using same functions.
While it's very ad hoc it does help contain combinatorial explosion
Express geometric mean in terms of standard mean

It allows to use weighted samples and reuse all nice stuff from
Mean. Also:

 * Add Functor instance for Weighted
 * Add more instances for ToDouble and Element type classes
Reimplement min/max estimators
Doc
Sketch for a robust variance

There isn't output function yet. And it's unclear how to write it
Add function for converting monoidal estimators to
Estimator data type