fix(input): don't dirty model when input event triggered due to placeholder change

Certain versions of IE inexplicably trigger an input event in response to a placeholder being set.

It is not possible to sniff for this behaviour nicely as the event is not triggered if the element is not attached to the document, and the event triggers asynchronously so it is not possible to accomplish this without deferring DOM compilation and slowing down load times.

Closes #2614
Closes #5960 

----

This that could theoretically go wrong:

- If a value change and a placeholder change both occur and emit a single coalesced event (rather than two independent events), this may lead to a model occasionally not being updated. I imagine this would be pretty rare in practice.

- If a test for `lastValue === value` is added to the exit condition, then the same issue above still potentially happens when an empty string becomes an invalid string and constraint validation gives us an empty string.

There are probably a few more holes in this, unfortunately, which is why it would be better if MS would hotfix the affected browsers. But it's not breaking any tests and if it doesn't break any apps which dogfood it then that's probably fine.