Create System.LoaderHooks and pass it to Loader()

Refactor module-loader: InternalCompiler -> System.LoaderHooks.
Lift loaderHooks out of CodeLoader ctor.

Review URL: https://github.com/google/traceur-compiler/pull/550

Closes #550.
Make requirejs and commonjs skip normalization
Remove non-standard `String.prototype.toArray`
Replace project->loaderHooks in ModuleVisitor

Another step to corner Project within runtime/System.js.
Note: ModuleAnalyzer is within System.LoaderHooks already, so its use of Project is fine.

Review URL: https://github.com/google/traceur-compiler/pull/551

Closes #551.
Improve `String.prototype.startsWith` polyfill

This patch replaces the old `String.prototype.startsWith` polyfill with http://mths.be/startswith, while also adding the tests from that project.

Review URL: https://github.com/google/traceur-compiler/pull/554

Closes #554.
Improve `String.prototype.endsWith` polyfill

This patch replaces the old `String.prototype.endsWith` polyfill with http://mths.be/endswith, while also adding the tests from that project.
Improve `String.prototype.contains` polyfill

This patch replaces the old `String.prototype.contains` polyfill with http://mths.be/contains, while also adding the tests from that project.
Move String polyfills to its own file