merged master into petscscalar_complex

compiles fine on OS X with PETSc/SLEPc/Trilinos.