As of Qt 5.9, QQuickWindow synthesizes a hover event once per frame.
This interferes with keyboard navigation when having the mouse
pointer above any item, because after navigating away with the arrow
keys, the next synthesized hover event will cause the item below the
pointer to become the current item again. This patch addresses this
by rejecting onPositionChanged with identical coordinates from the
last event.
It also optimizes the delegate by turning its root item from
MouseArea to Item and turning the per-delegate context menu instance
into a per-view one.