cg_m added, template structure changed for linear solver

- template structure of linear solver base changed, subsequent changes also made
- an interface added to fit shifted family solver into the linear solver base
- cg_m added, unit-tests also added