Make pads with long lines usable with chrome.

- Do not use incorpIfQuick on keyup because it's not ever quick
  on chrome. Calling incorpIfQuick calls incorporateUserChanges
  which sets a flag on the current callstack state indicating
  that the selection has changed (since something was typed).
  Whenever this flag is set, the event handler will run code
  to update the selection (and possibly scroll the view as
  well), which is a very costly operation in webkit browsers.
  Instead let the user changes be incorporated by the idle worker,
  scheduling it to run ASAP on keyup. This isn't a perfect
  solution, but may make pads running on webkit browsers more
  usable with otherwise fairly unnoticeable changes in the UI.
Adapt and add slowness test from @JohnMcLear.

- The test now ensures that all three key events are fired when
  sending keys. Previously, only the 'keypress' event was sent,
  which failed to trigger very slow code on webkit browsers (as
  it is triggered by 'keyup'). All three events should really be
  sent whenever sending keys to the browser to ensure that we're
  adequately testing real behavior. See the 'sendkeys' plugin
  for more; it only sends 'keypress'.
Merge pull request #1833 from digitalbazaar/fix-chrome-longlines-slowdown

Make pads with long lines usable with chrome.