Ensures Enum.slice always returns a list.

Both Enum.slice/3 and Enum.slice/2 now will return empty lists for
impossible or out of bound ranges, rather than `nil`.

Fixes #2410.
Merge pull request #2414 from christhekeele/empty-range-slice

Ensures Enum.slice always returns a list.