iterator: add skip and take
takewhile -> take_while, dropwhile -> skip_while
move iterator adaptor tests to iterator module
re-organize the iterator module a bit
libcore: add an UnfoldrIterator like Haskell's `unfoldr`
iterator: add a chain adaptor
iterator: add a bit of documentation
auto merge of #5955 : thestinger/rust/iterator, r=graydon