Work around PETSc expecting a 2D array for matrix data

Tracker item 3514

In distributed_matrix_data_restore, PETSc expects a 2D array of matrix
data, even for sparse matrices. This commit introduces a hack to convert
a 1D Fortran array to a 2D array with the incorrect size that PETSc
expects.
Merge pull request #135 from adamreeve/petsc_matrix_restore

Work around PETSc expecting a 2D array for matrix data