Reduce raw pointer
I replaced the raw pointer members Multigrid::baseSolver_, IterativeSolver::errorNorm_ and IterativeSolver::iterationStep_ by shared pointers and added getters and setters when needed.
This will break the code of people that are directly accessing these public members.