PETSc solver for pressure space preconditioner

Added PETSc interfaces for the operator and preconditioner and implemented new PETSc solver class which can use the pressure operator and preconditioner.
Fixed typo.

There was a factor 1/2 missing in the definition of the kinetic energy.
Refactoring: move mixed operator and preconditioner into a separate class.

Instead of implementing them as methods for the Helmholtz solver, the mixed operator and preconditioner are now separate classes. This will help with interfacing this to PETSc.
Implemented PETSc solver for mixed system

The outer iteration on the mixed system is now carried out with a PETSc KSP solver, preconditioned with the Schur complement preconditioner.
Merge branch 'master' into petsc_mixed_solver