BUG : many functions in `fromnumeric` silently drop keepdims kwarg

Because every sub-class of ndarray is not guaranteed to implement
`keepdims` as a kwarg, when wrapping these methods care must be taken.

The previous behavior was to silently eat the kwarg when dealing with
a sub-class of ndarray.

Now, if `keepdims=None` (the new default) it is not passed through to
the underlying function call (so the default value of `keepdims` is
now controlled by the sub-class).  If `keepdims` is non-`None` then it
is passed through and will raise an exception if the sub-class does
not support the kwarg.

This required changes to `nanfunctions` so that the default value of
`keepdims` in those function calls does not explicitly set the value.

A special case in nanvar was required to deal with `matrix` that previously
relied on `fromnumeric` silently dropping `keepdims`.