Refactors gmres to return ConvergenceHistory

Additionally extends ConvergenceHistory to handle information from both macro- and microiterations