Enable user control of linear solver for full and elliptic system.

This is done by using parameter subgroups 'cpr_elliptic' and 'cpr_full'.
If groups are not present, parent (root) group will be queried.
Added some utility functions for the CPR preconditioner.

The new functions are:
    - eliminateVariable()
    - recoverVariable()
    - isDiagonal()
Let computeNewtonIncrement() eliminate well equations.

In its current state, we still don't do CPR, but eliminate the well equations,
solve the resulting system and finally recover the eliminated well unknowns.