fix($animate): ensure all animated elements are taken care of during the closing timeout

Closes #6395
test($animate): ensure staggering timeout tests are secure
fix($animate): ensure that animateable directives cancel expired leave animations

If enter -> leave -> enter -> leave occurs then the first leave animation will
animate alongside the second. This causes the very first DOM node (the view in ngView
for example) to animate at the same time as the most recent DOM node which ends
up being an undesired effect. This fix takes care of this issue.

Closes #5886
fix(ngAnimate): TypeError Cannot call method 'querySelectorAll' in cancelChildAnimations

When an element containing both ng-repeat and ng-if directives attempts to remove any items from
the repeat collection, the following error is thrown: "TypeError Cannot call method 'querySelectorAll'
of undefined".  This happens because the cancelChildAnimations code naively belives that the jqLite
object always has an element node within it. The fix in this commit addresses to securely check to see
if a node was properly extracted before any child elements are inspected.

Closes #6205
fix($animate): only block keyframes if a stagger is set to occur

Transitions must be blocked so that the initial CSS class can be applied
without triggering an animation. Keyframes do not need to be blocked since
animations are always triggered on the starting CSS class, however, if a
stagger animation is set to occur then all elements for index > 0 should
be blocked. This is to prevent the animation from occuring early on before
the stagger delay for the given element has passed.

With ngAnimate and keyframe animations, IE10 and Safari will render a slight
flicker effect caused by the blocking. This fix resolves this issue.

Closes #4225
chore(travis): add gitter config
fix($animate): ensure all comment nodes are removed during a leave animation

Closes #6403
docs(contribute): add table of contents to contributing doc

- add linked list to top of document
- add anchor elements to secondary headings

closes #6287
docs(guide/directive): update directive restrict options

- add missing 'C' restriction for class names
docs(errors/infdig): add a common example

Mention common cause of error is binding to a new array on every $digest loop.

Closes #6465
docs(guide): add a new django tutorial

 - add a link to a tutorial on intergrating angular and django
docs(guide/resource): add links to ngResource and $resource
docs($injector): fix typo

Duplicate 'that' words present in the document, just remove one of them.

Closes #6469
docs(changelog): fix typos
chore(scripts): fix typos in scripts/utils.inc
docs($compile): fix typo
docs($sce): fix typo
chore(animate): fix typo in a comment
chore(AngularSpec): fix typo
chore(ngRepeatSpec): fix typo