Give atom-text-editor elements a shadow root

Themes aren’t applying correctly and there are issues with mini editors
but this basically works. I’m leaving the .editor node in the shadow
DOM for theme compatibility and because React still wants to render
into a wrapper element.
Hack: Add editor stylesheets to atom-text-editor shadow root
Make atom-text-editor have “display: block”
Style mini editor font sizes on atom-text-editor host element

…instead of via the shadow DOM. We always honor the computed font
styles of the host element.
Support context attribute in <atom-styles>
Create WeakMap on element creation to support ‘context’ attribute change
Handle events with native handlers to avoid shadow DOM issues with React
Load editor stylesheet in shadow root with style manager context param
Use atom.styles to activate stylesheets in packages
Apply syntax theme stylesheets in text editor shadow DOM via atom.styles
Only update atom-styles children on context attribute change if attached
Fix sourcePath on text editor stylesheet loading
Move font styling to host element so font preferences work
Assign StylesElement::context on attachment
Initialize atom-styles element in editor shadow dom before measuring
Apply mini and is-focused class to both editor host element and root

This preserves existing theming behavior
Use native event handlers instead of React

React event handlers don’t work because of the shadow DOM
Get node once to attach event handlers
Avoid traversing through shadow root on mousewheel events
Specify border-box sizing for the cursor to fix specs