Clean up tests for String library
Rename String.sub to String.slice and add tests

Name change to get it to match Array library. May be good to bring
left, right, dropLeft, and dropRight function to the Array library.
Adjust tests to get better expected/actual errors
Make meaning of Array.slice match String.slice

This is the meaning used by JS, Python, Clojure, and Scala at least. I
hope Dijkstra would be pleased.