Refactor PETSc matrix assembly API
I suggest improving the createMatrix() interface to simplify adding new operators.
Overloading of createMatrix() could be one solution - the current templates are
confusing and hard to get right. This especially applies for the implementation of
more complicated operators or wrappers such as the UnsteadyDiffusionOperator.