Ensures String.slice returns a string.

Both String.slice/3 and String.slice/2 now will return empty strings for
impossible or out of bound ranges.
Merge pull request #2412 from christhekeele/empty-string-slice

Ensures String.slice always returns a string
Properly indent tables
fix typo in docstring of Enum.at and Enum.slice