Support multiple separators in context menu
Merge pull request #2977 from atom/iz-multiple-separators

Support multiple separators in context menu
Render nbsp on empty lines to ensure they have a non-zero height

Fixes #2958
Export ReactEditorView as EditorView from 'atom' module

Also, remove a few early requires of 'exports/atom.coffee' in the spec
suite that were causing failures.
Base editor dimensions on the wrapper view

The goal is to make the editor behave like a standard block-level
element.

The horizontal behavior is simple: we stretch horizontally to fill our
container.

The vertical behavior is more nuanced. If an explicit height is assigned
on the wrapper view, we honor that height. But if no explicit height is
assigned, the editor stretches vertically so that its contents are
visible.

This prepares us to support mini editors, which need to be 1-line tall
without an explicit height assignment.
Support ReactEditorView construction with params hash
Don't show the gutter when 'mini' is true on React editors
Explicitly assign height of editor-contents when height is auto
Add the 'mini' class to the React wrapper view for mini editors
Don't render invisible characters in React mini editors
Don't set an explicit line height on mini editors

This allows the line height to be styled via CSS. I would actually
like to allow all these properties to be assigned via CSS rather than
explicitly via the settings view, but that can be deferred until the
old editor is removed.
Don't render line decorations on mini editors
Add placeholderText to React editors
Determine visibility by checking offsetWidth/Height of the editor's node

This could still use some cleanup
Pull out EditorComponent::pollDOM method

This makes the actions that we perform in the poll loop explicit, and
will prevent the accumulation of polling-related behavior in the
::measureScrollView method.
Rename EditorComponent::measureScrollView to ::measureHeightAndWidth

Since we also check if we're auto-height in this method, this name seems
like a better description of the objectives of this method.
Remove animation frame batching of mousewheel events

This doesn't seem to adversely affect the scroll experience, and it's
much simpler. I want to avoid preventing the default action of
mousewheel events if they don't actually lead to scrolling, and making
the behavior synchronous will make that a lot easier.
Only prevent default on mousewheel events if editor actually scrolls

This prevents mini editors from capturing scroll events.
Add ReactEditorView::setPlaceholderText shim
Handle 'attributes' param to ReactEditorView