PETSc interface for assembly and linear solver

Preliminary implementation for discussion.