String#startsWith / String#endsWith changes

Changes:

 1. Functions throw a `TypeError` for `null` and `undefined` this values*. 
 2. `String#startsWith` doesn't need the` Math.min` operation on its second argument.
 3. `String#endsWith` doesn't need the `Math.max` operation on its second argument.
 4. Some variables were renamed, and some removed where it made sense.

*The [spec](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-15.5.4.20)'s [`CheckObjectCoercible()`](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-9.2.1) function throws a `TypeError` for `null` and `undefined` values.

[`String#startsWith` tests](http://jsbin.com/apufab/5) (The errors on Native are because your browser doesn't support `String#startsWith`)
[`String#endsWith` tests](http://jsbin.com/ozoneq/3) (The errors on Native are because your browser doesn't support `String#endsWith`)