Implement 'sequential focus navigation starting point.'

This CL implements sequential focus navigation starting point.
https://html.spec.whatwg.org/multipage/interaction.html#sequential-focus-navigation-starting-point

Behavior Change:
When TAB or Shift-TAB is pressed and there is not focused element, we start
searching for next focus candidates at the sequential focus navigation point.

 - If a navigation to a url with fragment identifier happened, an element pointed
   by the fragment is set as sequential focus navigation starting point.

 - If an element is focused, the element is set as sequential focus navigation
   starting point.

 - If a mouse button is pressed, an element on the mouse pointer is set as
   sequential focus navigation starting point.

If the element pointed by sequential focus navigation starting point is removed
from the document tree, a point where there was the element at would be the
starting point.

Implementation:
Sequential focus navigation starting point is represented as a Range object, and
it is owned by a Document.

Tests:
 * fast/events/sequential-focus-navigation-starting-point.html
   Added.
 * fast/events/frame-tab-focus.html, fast/html/tab-order.html, and svg/custom/
   tabindex-order.html
   Expectations are updated because element.blur() doesn't reset sequential focus
   navigation starting point.

BUG=454172

Review URL: https://codereview.chromium.org/1718153002

Cr-Commit-Position: refs/heads/master@{#376949}
9 files changed