Fixed runtime.iteration with iterators

This fixes an issue when using for loops over iterators, where it was dropping the first item of the iterator - if the head item of the iterator was a string or didn't support `len()` then the code was falling through to the default case, returning the iterator with the first item already consumed.