Avoid cleanup if initialization stopped short by ImportError.

When umfpack was not available, `UmfpackContext` did not finish initialization and raised an `ImportError`. If that error was caught, an `AttributeError` was raised because the `__del__` method tried to cleanup attributes that were never initialized.
Merge pull request #2476 from tonysyu/fix/umfpack-cleanup

BUG: scipy.sparse.umfpack: Avoid cleanup if initialization stopped short by ImportError