Correct Enum.take, Enum.take_every, Stream.take, Stream.take_every

Correct Enum.take, Enum.take_every, Stream.take, Stream.take_every to accept proper nth/count values.

Make these functions deal with:
* empty collections and directly return and empty list
* non-integer values for Enum.take and Stream.take
* negative and non-integer values for Enum.take_ever and Stream.take_every