Returns an iterator that yields the last n items of this iterator.
If the source has fewer than n items, all of them are yielded.
When the source iterator's length is unknown, this materializes the
source into a list to find where the last n items begin. Avoid
calling this on iterators whose length is unknown and might be huge.
expect Iter.fold(Iter.take_last(List.iter([1, 2, 3, 4, 5]), 3), [], |acc, item| acc.append(item)) == [3, 4, 5]
expect Iter.fold(Iter.take_last(List.iter([1, 2]), 5), [], |acc, item| acc.append(item)) == [1, 2]