Improved String#repeat()

- Reduced time complexity from O(n) to O(logn) (note the algorithm game from Google's V8 engine currently at https://github.com/v8/v8-git-mirror/blob/master/src/harmony-string.js#L27)
- Improved input-checking so non-number input is coerced to a number instead of throwing an error (added a test for this)
- Now throws an error when called on null or undefined (added tests for this)
- Shortened the RangeError message