Cache the PETSc vector on the Dat
Explicitly mark solution vector as dirty after solve

Do not access data attribute on Dat when returning vector, to not mark
the Dat as writable. Requires explicitely marking the Dat as dirty
when written.