Currently the Python bindings defaults to preconditioning using a full LU solve which pretty much defeats the whole purpose of using the iterative solvers. We should allow the user to specify a preconditioner as a python callback (and perhaps also give the user the option to use e.g. the block diagonal preconditioner included in sundials).