Better duck typing in isinstance check

I think `isinstance(value, (tuple, list)` can safely be replaced with `isinstance(value, collections.Iterable)`.