Workaround Android 4.4.2 browser not sending keypress events

Followup of #98
Bug report: https://code.google.com/p/android/issues/detail?id=68284

Basically we rely on input event instead when possible.

It mean that we will reformat the expiry field slightly more often that
really needed, but I don't think it matter that much.

We could use a similar approach for the CC number field, but in the end
since it only add spaces, a broken formatting is not as bad as on expiry.

cc @cjoudrey @christianblais
Could you explain this scenario, since I don't see it represented in the previous implementation? After two digits of input, shouldn't `val` have a ` / ` separator and always fail to match?