Fix iteration through lists nested in other iterables
Make each helper more robust

Respond appropriately to dictionary-like objects, empty iterables, and non-iterables