feat(jQuery): upgrade to jQuery to 2.1.1

feat(jQuery): upgrade to jQuery to 2.1.1

The data jQuery method was re-implemented in 2.0 in a secure way. This made
current hacky Angular solution to move data between elements via changing the
value of the internal node[jQuery.expando] stop working. Instead, just copy the
data from the first element to the other one.

Testing cache leaks on jQuery 2.x is not possible in the same way as it's done
in jqLite or in jQuery 1.x as there is no publicly exposed data storage. One
way to test it would be to intercept all places where a jQuery object is created
to save a reference to the underlaying node but there is no single place in the
jQuery code through which all element creation passes (there are various
shortcuts for performance reasons). Instead we rely on jqLite.cache testing
to find potential data leaks.

BREAKING CHANGE: Angular no longer supports jQuery versions below 2.1.1.

**Original description:**
The data jQuery method was re-implemented in 2.0 in a secure way. This made
current hacky Angular solution to move data between elements via changing the
value of the internal node[jQuery.expando] stop working. Instead, just move the
data from the first element to the other one.

cc @caitp @IgorMinar
Yes, it's there for performance reasons. There is no other way (and for that matter, there's no official way at all) to check if there are event listeners attached to an element (similarly, there is no such way for native, non-jQuery events).

The change was introduced in commit https://github.com/angular/angular.js/commit/cf5e463abd2c23f62e9c2e6361e6c53048c8910e.

It might be that we should create a fast path for `triggerHandler` in both jqLite & jQuery so that they both check for event handlers before doing the rest so that this hack in Angular is not needed. We'd be able to remove the `jqLite._data` method then.

In jQuery it won't happen before 2.2, though, and Angular 1.3 will be released before that happens.