docs($animate): require ngAnimate in example, syntax fixes

The example in the section "JavaScript-defined Animations" would not run without the ngAnimate dependency. Also added a missing comma and semicolons.
chore(grunt): update to latest jshint task

Upgrade JSHint task from ~0.6.4 to ~0.7.2. Two useful changes: ability
to set jshintrc option to use jshint's native ability for finding .jshintrc
files relative to the linted files and update jshint to 2.3.0.

Closes #5143
chore(travis): use only websockets and xhr-polling

I wanna see more info about BrowserStack...
chore(travis): tolerate 2 disconnects to make the build more stable
chore(deps): use regular junit-reporter

We don't need the special branch anymore.
chore: use karma-browserstack-launcher from master
chore(travis): fix the build id on browser stack

This just improves the way BrowserStack groups the sessions.
docs: update CONTRIBUTING.MD with process for doc fixes
chore(travis): ignore 404 warnings, debug log into file

This is a terrible hack/workaround, however I don't think there is any better way to achieve this
with log4js.
chore(travis): increase BrowserStack timeout to 10min

Because IE is retarded.
fix($sanitize): don't rely on YARR regex engine executing immediately

In Safari 7 (and other browsers potentially using the latest YARR JIT library)
regular expressions are not always executed immediately that they are called.
The regex is only evaluated (lazily) when you first access properties on the `matches`
result object returned from the regex call.

In the case of `decodeEntities()`, we were updating this returned object, `parts[0] = ''`,
before accessing it, `if (parts[2])', and so our change was overwritten by the result
of executing the regex.

The solution here is not to modify the match result object at all. We only need to make use
of the three match results directly in code.

Developers should be aware, in the future, when using regex, to read from the result object
before making modifications to it.

There is no additional test committed here, because when run against Safari 7, this
bug caused numerous specs to fail, which are all fixed by this commit.

Closes #5193
Closes #5192
fix(jqLite): ignore incompatible nodes on find()

When a jqLite collection contains text nodes, find() does not work :-(

This fix ignores all nodes than can't do getElementsByTagName()

It seems a little bit faster than testing nodeType : http://jsperf.com/nodetype-vs-duck-typing

Closes #4120
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.