Fix scrollbar dragging in React editor

Fixes #2751
Add 'onlyHead' option for decorations

It only decorates the head position of the decoration's marker.
Update addDecorationForMarker docs to talk about 'onlyHead' option
Only apply cursor-line decoration to head; Add selected-line decoration.

The cursor-line decoration shouldn't be applied to every line that's
selected. It should only be applied to the location of the cursor. We'll
need to update themes to reflect this.
Add 'onlyEmpty' and 'onlyNonEmpty' decoration options
Only add 'selection-line' decoration when marker is non-empty
Make both .cursor-line and .selection-line opaque
Add selection-line class to old editor gutter for forward-compatibility

The React editor does not apply the .cursor-line-no-selection class,
but instead relies on a combination of .cursor-line and .selection-line
for selectors that want to target the cursor line when there is no
selection.

This allows themes to be upgraded to support the React editor and the
old editor at the same time.
Add specs for gutter decoration options

- onlyHead
- onlyEmpty
- onlyNonEmpty
Add onlyEmpty and onlyNonEmpty decoration options
Add .cursor-line-no-selection decoration for backward compatibility
Update the specs for .cursor/selection-line decorations
:lipstick: Unify specs for all line decorations
Match existing editor's behavior for .cursor-line class