Iterators & Configuration.Match(regexp)

First pass at a common pattern for iterators.

ed7f523 is unrelated and can probably be cherry-picked on its own.