JS cleanup
fix tip validation error for HTML5 browsers

while it's convenient to automatically add/remove in 25 cent
increments, the HTML5 spec says that if you provide a step value, any
values between those steps are considered invalid
shorten tip input fields
#1754: better keyboard controls for tipping

Now:
+ pushing enter submits your change
+ pushing escape cancels the change
+ when the user starts typing and then pauses for 1 second, the input
is validated again (enabling the "confirm" button)
properly check bounds to prevent UI bug

In the two browsers I checked (Firefox and Safari), pressing return to
close the JS alert (for an invalid/out-of-bounds tip) re-triggers tip
submission since the tip input field is still focused. Before this
commit I worked around that by focusing on the confirm/cancel links,
but this adds a proper solution by doing bounds checking.
Merge pull request #1795 from gittip/1754-better-tipping-keyboard-controls

[1754] Better keyboard controls for tipping