Restructuring the solver and preconditioner creators in for istl backend to allow arbitrary recursive nesting