bugfixes and tests in LazyList

take would fail if n was too big (not documented like this...)
take_while was not lazy