Invisible Attribute and activateinvisible Event + Anchor Link Support Prototype

This CL adds a new attribute "invisible" and event "activateinvisible"
behind the flag "InvisibleDOM". When an element has the kuma attribute,
it is treated as if its display value is "none", meaning all of its
inclusive flat-tree descendants are not rendered.

When an invisible element needs to be shown for anchor-link navigation,
a DOM event of type “activateinvisible”  will be sent to all of its
flat tree inclusive ancestors that have the invisible attribute.
The event is cancelable and bubbles but is not composed.
If the event is not canceled, UA will remove the invisible attribute
from all the flat tree inclusive ancestors that originally have
the invisible attribute.

See design doc at https://goo.gl/sEJt3e
I2I: https://groups.google.com/a/chromium.org/d/msg/blink-dev/Icw_sU6PqVA/8hwXw0jTDwAJ

Bug: 873057
Change-Id: I0ba108789d5ddaa6227b1488f088cd10113fdc58
Reviewed-on: https://chromium-review.googlesource.com/1163052
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583603}
32 files changed