PETScLinearEquation is splitted into three classes

The overloaded interface is used to test the new classes. These classes can be also used for the generic interface, if its assembly of the submatrix to the global one becomes generic, and function  applyKnownSolutions  of PETScLinearSolver is just moved out its owner  to become  an independent function. There are two tests running in this pull request:
test1: for class PETScLinearEquation
test2: for classes PETScVector, PETScMatrix, PETScLinearSolver


Added matrix test. The vector test interface needs function about MPI related assembly.