Defer most Quick View processing until after delay

This is for #6538. This uses the `getHoveredEditor()` function from @SAPlayer's pull request #6571, so this is a replacement of that PR.

**Details:**
* only processes mousemove event in `requestAnimationFrame()`
* defers all processing until after `setTimeout()` delay
* **exception:** when Quick View is already being displayed, then processing is immediate

**Results:**
I did some simple profiling on Win7 using the src/extensions/default/QuickView/unittest-files/test.css file and Process Explorer. I moved mouse over the css rules in that  file at an even pace -- so that only mouse processing was executed (i.e. didn't stop long enough to display Quick View).
* **Before:** cpu averages **~2%**
* **After:** cpu averages **~1%**

**cc:** @peterflynn, @dangoor  

**Note:** this is a squashed version of PR #6697 (which was used for testing a Travis problem, so had several unnecessary commits)

I think we can ditch this `lastPos` stuff now: it's basically redundant with the `posWithinRange()` check below, and this codepath (mousemove while popup already open) doesn't need to care about efficiency that much.  (It's probably barely faster than the checks `posWithinRange()` does, so this early exit might not gain much/any perf anyway).

With this removed, the `coordsChar()` result can just be a local var in `showPreview()` that's used to sort out which pos/token to hand the providers.