ENH: add a weighted covariance calculation to numpy.function_base.

Weights can now be included in a covariance calculation in a similar manner as
the existing implementation of a weighted average.
I am sometimes pendatic about such a cast (user might use float128). But for the moment, there is a `weights = np.asarray(weights)` missing (at the top of the branch). The user might supply a list or a weird subclass.