Adds support for iterables in have

Even though the 'in' operator supports checking whether some item is
contained within a generator, this becomes quite unreliable for multiple
item checking.

The problem consist in the generator being consumed on every check,
turning the whole operation order-dependent:

>>> iterable = iter(['foo', 'bar'])
>>> 'bar' in iterable
True
>>> 'foo' in iterable
False

The operator walks the iterable for a match, disposing non-mathing
elements.

>>> iterable = iter(['foo', 'bar'])
>>> 'bar' in iterable
>>> list(iterable)
[]

Such convenient default behaviour has been maintained for the special
case of checking one single element.

When more than one item are tested, the iterable is consumed into a set,
which is subsequently checked multiple times.
Merge pull request #6 from jvrsantacruz/iter-contains

Adds support for iterables in have