Optimization

I took a crack at optimizing -- my Linux boxes have very little memory and the recursion in _iter() was abending some of the compiles of the Perl source.  I turned the recursion into an explicit stack.

I cannot build Dist::Zilla (too many dependencies).  But I did test as best I could.  The speed improvement is measurable, but (I must admit) disappointing.

Note the reverse'ing of the lists as I push them onto the stack.  This is only necessary if order matters.