Implement most of Enumerator

Enumerator#with_index is still not done but wanted to put the rest up for review as I won't have the opportunity to finish it for a few days. Some specs still failings due to short-comings elsewhere.