address svds returning nans for zero input matrix

fixes https://github.com/scipy/scipy/issues/3452 and passes sparse.linalg tests locally
Test generators can be useful for iterating over test parameters, but then it usually makes sense to work in the pattern:
```
def check(p1, p2):
    assert_foo(....)

for p1 in ...:
    for p2 in ...:
        yield check, p1, p2
```
Yielding tests with array arguments usually results to difficult to debug test output.

In this case, I'd prefer to write the whole test suite without using `yield` at all --- or using it only as far as the `for n, m, t` loops are concerned.