Implement select listbox using shadow DOM

User visible behavior changes.
- Old listbox could only scroll in itemHeight increments but now we have smooth scroll.
- Mouse events need to be dispatched on the option element, not select element.
- Select element height is determined based on the height of the first item, not the font size.
- Spatial navigation now draws a black dashed outline around the active selection instead of a focus ring.

We can no longer let RenderListBox draw the focus ring for spatial navigation mode because the items are drawn on another RenderLayer.
I added a user agent stylesheet only :-internal-spatial-navigation-focus pseudo type so a style can be applied to the spatial navigation active element.
If we add the default focus ring on the option element, it gets clipped to the select element so I changed it to a black dashed outline.

Option and optgroups were represented as AXListBoxOptions but now only options are AXListBoxOptions and optgroups are represented by the optgroup-label AXNodeObject. We let AXRenderObject handle hit testing so we can remove the custom hit testing.

BUG=234871

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

git-svn-id: svn://svn.chromium.org/blink/trunk@178354 bbb929c8-8fbe-4397-9dbb-9b2b20218538