fix(inputs): improve "input" event emulation for legacy browsers

Hello,

In IE versions that use the keydown handler to check for changes to an input, there is a bug when pressing the tab key that will update the input after the change and blur events.

This PR fixes this behavior ~~by cancelling the keydown handler, and updating immediately on change/blur~~.

See a demo of the bug here (only affects IE8/IE9): http://codepen.io/cvn/full/lvjJr/

Here is a fixed demo with the changes from this PR applied to angular.js: http://codepen.io/cvn/full/cgLns/

Currently, this bug only impacts IE8 & 9, but if PR https://github.com/angular/angular.js/pull/9265 lands, it will affect all versions of IE.

Issue https://github.com/angular/angular.js/issues/1206 may be related, but I'm not sure about this.

I'm submitting this PR to master, but I think it makes sense to include in both 1.2 and 1.3 branches.

Please let me know what you think.
This allows Opera versions with the Presto engine to use the real "input" event instead of the emulation. Opera Desktop and Mobile up through versions 12 and all versions of Opera Mini only have the input event on inputs and textareas. I learned about this from a tip by @montgomery1944 in the #1216 thread.

Here's a [test](http://jsfiddle.net/chad/8arckqzt/) result from Opera 12.16 mac that confirms this: http://i.imgur.com/0dU5CS0.png. Opera's support for the input event is pretty good, in my testing. The only flaws I found are that it will fire an input event when pressing the "enter" key in a single-line field.