Update range-controller to ensure selected consistency in one tick
Update the repetition for range-controller selection changes
Merge pull request #1290 Enforce selection synchronously

This replaces my egregious hack with an egreious hack that produces the desired
behavior.  It is unlawful to modify a selection while receiving a range change
event on that collection, so I had to postpone enforcement of the selection
invariants, e.g., `multiSelect` in a future event, which caused inconsistency
between events.  Stuart has found that, since a range change listener is either
too late or too early to enforce the invariants, it is better to swizzle the
selection `splice` method altogether.

Down the road, it would be cleaner, if not better, to have a `Selection`
collection that proxies for the underlying selection array to enforce these
invariants.  This solution would however be heavier and would take time that,
for the nonce, we do not have.