BUG/CLN: numpy compat with pandas numeric functions and cln of same (GH4435)
related #4787 (keywords now pass thru to _reduce), default for `numeric` is still `None`

closes #4435

BUG: provide numpy compatibility with 1.7 when implicity using `__array__`, IOW:

`np.prod(s)`, or `np.mean(df,axis=1)` will now work (because numpy _decided_ to try to see if the
object has this function and then pass all kinds of keywords to it, so pandas gets the right function called
with `dtype`, and `out` passed in (currently ignored)

CLN: refactored all numeric and stat like function (sum/mean/mad/min/max) and cums (cummin/sum..)

to `core/generic.py` from Series/DataFrame/Panel
