Initial commit.

Initial tests (test.cpp) show Matrix, Vector and EigenvalueSolver working, along with a rudimentary PetscContext
Merge commit '9ebddb1d8f9e587a0b0c8845bd54c434c94556bb'