feat(filterFilter): support deeply nested predicate objects

Due to 339a165, it became impossible to filter nested properties of an object using the filterFilter.
A proposed solution to this was to enable the use of nested predicate objects. This change enables the
use of these nested predicate objects.

Example:

```html
<div ng-repeat="it in items | filter:{ address: { country: 'Canuckistan'}}"></div>
```

Or

```js
$filter('filter')(items, { address: { country: 'Canuckistan' } });
```

Closes #6215
Related to #6009
docs(jqLite): link to jQuery.fn.bind/unbind docs rather than jQuery.fn.on/off docs

Сorrect link.

Closes #6171
docs(core): add closing tag to ngApp directive example

added missing closing tag to ngApp example.

Closes #6066
chore(dependencies): upgrade kriskowal/q to version ~1.0.0

CI builds on travis occasionally freak out because of the recursive use of process.nextTick, which
has been deprecated in Node relatively recently, to be replaced with setImmediate. Unfortunately,
this change does not resolve the issue. However, it does not hurt, either.

Closes #6161
docs(tutorial): inject phonecapApp module into unit test

When I was reading this doc I was thinking "but what about phonecatApp?" and when I looked in the
file from the step-11 branch there it is. Should be reflected in the docs as well

Closes #6209
docs(input): document NgModelController.$isEmpty parameters / return value

Closes #6224
docs(guide/$location): correct link to HTML5 draft section 5.5 (history api)

Previous link url is no longer served, responds with bad link (error 404). This change corrects the
URL to point to section 5.5 of the draft. The old URL appears to have been removed from service in
2012.

Corrects the link to "History API"

Closes #6225
docs(currencyFilter): added missing line break in currency doc ptor test

Closes #6229
docs($location): fix link to $rootScope.Scope.$on

Previously missing the methods_ prefix.

Closes #5798
docs($interpolate): fix link to $interpolateProvider#endSymbol

The markup here was missing the methods_ prefix and behaved incorrectly.

Closes #5802
fix(input): setViewValue on compositionend

Because of a4e6d962, model is not updated on input/change between the
compositionstart and compositionend events. Unfortunately, the compositionend
event does not always happen prior to an input/change event.

This changeset calls the listener function to update the model after a
compositionend event is received.

Closes #6058
Closes #5433
docs(logo): change logo to vector format in .eps file

Browser: Other
Component: docs
Regression: no

Closes issue #6092
Merge pull request #6245 from brianhall/master

Google logo in AngularJS.exports to vector format.
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: Both the `$animate:before` and `$animate:after` DOM events must be now
registered prior to the $animate operation taking place. The `$animate:close` event
can be registered anytime afterwards.

DOM callbacks used to 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 after this
change callbacks are only fired if registered on the element being animated.
fix($animate): ensure $animate doesn't break natural CSS transitions

BREAKING CHANGE: ngClass and {{ class }} will now 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.

Closes #6019
style(animate): remove ws