Add `Context` to manage initialization/finalization
PETSc needs to be initialized before being used, and finalized after being used. This can be automated by using a class Context.
PETSc needs to be initialized before being used, and finalized after being used. This can be automated by using a class Context.