This is my proposal for supporting the parallel solvers in dune-istl with the solver factory.

Summary of the changes:

- The parallel operators let one get the underlying communication object. This is needed to pass it to the parallel preconditioners
- The solver factory passes the Operator instead of the matrix to the preconditioner factory. Thus AMG can be constructed without creating another operator from the matrix and we can determine whether we are parallel or not by the operator.
- For the parallel solvers we need to initialize the factory with the corresponding parallel operator.

Note that further refactoring might be required to support e.g. the grid-communcation-based parallelization approaches sometime used in PdeLab.

This is one part of the work proposed in #82