code restructuring: factor out preconditioning in a separate function for clarity and so that it can be reused for different iterative solvers
code restructuring: factor out preconditioning in a separate function for clarity and so that it can be reused for different iterative solvers

zasdfgbnm/qutip,cgranade/qutip,zasdfgbnm/qutip,cgranade/qutip,anubhavvardhan/qutip,qutip/qutip,qutip/qutip,anubhavvardhan/qutip