address svds returning nans for zero input matrix

fixes https://github.com/scipy/scipy/issues/3452 and passes sparse.linalg tests locally
Maybe just write it out rather than copypaste?
The if statements and several of the assignments are redundant here...