Fix scheduled task so it only fires ONCE per group of trigger requests
Batch up multiple calls to redraw selection region

This does not need to be done immediately after every operation.
Ensure expand to word and paragraph boundaries keep selection direction

SessionController had some internal confusion about whether to work in
selection or range+bool. This cleans these up to ensure the direction is
properly preserved throughought.
Constrain anchor and focus nodes to the containing paragraph

This ensures that a cursor or selection remains within the
current paragraph container.

Fixes issue #161.
Don't allow paragraph selection to creep after mouse release

Chrome's built-in paragraph expansion will put the end of the selection
at (p,0) of the FOLLOWING paragraph. Round this back down to ensure the
next paragraph doesn't get incorrectly selected.

Fixes issue #165.
Expand to word and paragraph boundaries on mouse down

Previously, the editor would wait for mouse up before expanding the
virtual selection.

Now, this can easily be done on mouse down as well. this makes the
editor feel a lot more responsive when double or triple clicking to
increase expansion. It now mimics built-in Chrome behaviour.
Reset selection to collapse on anchor when performing shift+click

Firefox seems to get rather confused about the window selection when
shift+extending it. Help this poor browser by resetting the window
selection back to the anchor node if the user is holding shift.

Fixes issue #123.