chore($parse): micro-optimization for ensureSafeObject function

This version matches the "alternate 2.2" version here: http://jsperf.com/ensuresafeobject/2

alternate 2.3 is a bit faster and simpler, but would break backwards compatibility.

Closes #5246
fix(ngSanitize): prefer textContent to innerText to avoid layout trashing

innerText depends on styling as it doesn't display hidden elements.
Therefore, it's better to use textContent not to cause unnecessary
reflows. However, IE<9 don't support textContent so the innerText
fallback is necessary.
style(Angular.js): fix typo in comment
style(Scope): rename child scope type from Child to ChildScope

This change makes it easier to debug angular, especiall when dealing with heap snapshots
and hunting for memory leaks.
style(Scope): remove extra ws
docs: fixed a typo and made a minor edit to docs section of CONTRIBUTING.md
chore(karma): correct the 404 ignoring
chore(travis): use different port numbers per build

We can't establish multiple SSH tunnels for the same port (for BrowserStack).
This makes it possible to run multiple parallel builds using BrowserStack.
chore(travis): log used ports
chore(travis): report both build number and id to BS
chore(travis): define a launcher for IE11 (SauceLabs)
chore(travis): switch back to SauceLabs

I think we are pretty close to be able to use both.

The xhr-polling seems to be pretty stable, but I'm having problems with multiple SSH tunnels (on BS), so let's try to switch back to SL.
chore(travis): disable IE11

For some reason it's broken on SL.
chore(travis): set SauceLabs build id
chore: make it simpler to run tests on SL/BS during local development
chore(travis): add IE 11 (SL) to the build
chore(travis): give browsers more time to respond
fix($compile): ensure isolated local watches' lastValue is always in sync

When using two-way binding with isolate scope, under some circumstances
the lastValue variable captured in the parentValueWatch function can get
out of sync.

Specifically, if both the value in the origin scope as well as the value
in the isolate scope get independently updated to the same value within
one digest cycle, the lastValue is never updated. This potentially causes
the watch to make the wrong decision as to which side to update on subsequent
passes.

This fixes things by ensuring lastValue is always set to the last seen
value even if the watch's logic was short circuited because there was no
difference between the values in the original and isolate scopes.

Closes #5182
fix($rootScope): clear phase if an exception is raised by a watcher

Add calls to clearPhase() when an exception is raised by a watcher
while a digest cycle, in order to not be stuck on `$digest` scope phase
docs(animate.js): fix copy/paste typo in leave docs

fix the copy/paste typo within $animate.leave method inside of the $animate docs.