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.