fix(input): don't apply textInput to <input type="file">

textInput shouldn't be applied to file inputs to ease writing of custom file input directives.

This change prevents file inputs from instantiating the text input parser/formatter pipelines.

Closes #6247
Closes #6231
fix($compile) support templates with table content root nodes

If the first element in a template is a <tr>, <th>, <td>, or <tbody> tag,
the HTML compiler will ensure that the template is wrapped in a <table>
element so that the table content is not discarded.

Closes #2848
Closes #1459
Closes #3647
Closes #3241
chore(jqLite): expose the _data lookup function to angular.element
pref($animate): group all asynchronous requests into one shared buffer
pref($animate): only trigger DOM callbacks if registered on the element being animated

BREAKING CHANGE

DOM callbacks are fired for each and every animation operation that occurs within the
$animate service provided in the ngAnimate module. This may end up slowing down an
application if 100s of elements are being inserted into the page. Therefore callbacks
are only fired if registered on the element being animated.

Both the `$animate:before` and `$animate:after` DOM events must be registered prior to the $animate
operation taking place. The `$animate:close` event can be registered anytime afterwards.
fix($animate): ensure $animate doesn't break natural CSS transitions

BREAKING CHANGE

ngClass and {{ class }} will call the setClass animation callback instead
of addClass / removeClass when both a addClass/removeClass operation is
being executed on the element during the animation. Please include
the setClass animation callback as well as addClass and removeClass within
your JS animations to work with ngClass and {{ class }} directives.