Always reserve space for (and zero) diagonal matrix entries

Many PETSc solvers require that the diagonal entry of the matrix be
set (even if it is zero).  If integrating over a subdomain, our previous
approach of just inspecting the maps occasionally would lead to us
neither allocating, nor zeroing, diagonal entries.  So fix that.