Align [starts|ends]With with the ES6 spec (+optimization refactors)

This will both be faster, and align these functions with the ES6 spec for some edge cases.

The `slice` change is simply an optimization refactor ~~(todo jsperf)~~

**http://jsperf.com/somescorestartswith**