DataFrame.corr() now computing correlations only once
DataFrame.corr() for 'spearman' and 'kendall' was computing some correlations twice.

can you add a test for this? e.g. generate a random frame, compare this results vs. numpy?
 @jniznan the following is probably faster as u avoid the explicit check and u don't create the `enumerate` objects

``` python
n = mat.shape[0]
for i in xrange(n):
    ac = mat[i]
    for j in xrange(i + 1):
        bc = mat[j]
        valid = mask[i] & mask[j]
        if valid.sum() < min_periods:
            c = NA
        elif not valid.all():
            c = corrf(ac[valid], bc[valid])
        else:
            c = corrf(ac, bc)
        correl[i, j] = correl[j, i] = c
```
 future note that this could be cyhonized
 yes looks very similar to the cython code for pearson
 The test is already in `pandas/tests/test_frame.py`, function `test_corr_spearman(self)`.
Anyway, I have cythonized the spearman function so I will create a new pull request.
 closinging in favor of #3823
