This is essentially @davydden 's #1008, with a couple of fixes on top to make the testsuite run. I've reviewed #1008 and it looks good, so I'm going to merge this myself.
make column_values use value_type in BlockMatrixBase
extend operator= for PETSc MPI vector to handle complex-valued case
modify methods description in PETSc sparse matrix for complex numbers
add real/imag to PETSc vector. Adjust description of operator* for co…
preliminary changes in pack_callback and unpack_callback to use compl…
modify Assert in fe_tools_interpolate for complex numbers
FullMatirx.vmult for vectors based on std::complex<double>
modify check of non-zero diagonal element in PETScWrappers::apply_bou…
…ndary_values to complex case
extend ConstraintMatrix to cover complex-valued cases
limit instantiation of MatrixCreator::create_mass_matrix to matching …
Avoid a warning.
Match the template arguments of matrix and vector for MatrixCreator::…
…create_mass_matrix. This also allows us to re-enable the float-instantiations of this class, thereby fixing umfpack/umfpack_07.
Adjust scalar type of a local matrix to match that of the global one.