[operators.basic] add sanity check to apply_inverse of NumpyMatrixOperator

I ran across a problem where the reduced system matrix contained NaNs and thus the reduced solution contained NaNs. The cause for this was some memory corruprion in an external library and since the reduced matrices were projections of external matrices (that were not available, just applyable) this resulted in hard to trace back NaNs in the reduced matrices. The attached commit checks the solution of a call to `numpysolvers` for NaNs and infs using an assert. Do we want to have something like this?

* this could lead to slow code when asserts are enabled (as they are most of the time)
* if we want this, should it be moved to `numpysolvers`?
* if we want this, do we want to have this in all solvers?
`assert np.all(np.isfinite(solution))` seems cleaner to me. (Taking the sum might be faster, but of course for arrays with very large entries you would get wrong results ..)