Configuration iterators redux

I took @cholin's code and changed a bunch of internal code to run on iterators, as well as created an external API similar to the reference's.