[Bugfix][AMG] Move storage of iterators from class to method scope.

Storing the iterators over over the AMG hierarchies as class member
is a really bad idea if one wants to allow the reuse of theses AMG
hierarchies in different threads. This patch creates a private struct
for collecting the iterators over the hierachies. An instance of this
struct is created in apply and passed to the solution algorithms. Thus
each apply uses its own context of iterators.