Many changes in iterables.

+ Added test cases for takeWhile(), dropWhile() and sample().
+ Fixed sample() raising an error on 0 or negative n.
+ Added methods indexOf() and indexWhere(), with test cases.
+ Simplified toString().