Faster cov() for pset objects

Previous implementation relied on sub-functions such as
center() and prod() making cov() very slow for large pset objects.
The new implementation avoids such sub-calls for the most common
call case: cov(data)