Don't preserve rows when scrolling
Overdraw lines to discourage Blink from repainting the entire editor
Update scroll position directly on mousewheel events

Previously, we were updating the scrollbars and relying on an async
scroll events to fire. But updating the scrollbars is expensive, so this
updates the model directly when the next animation frame fires instead.
Measure characters in new lines when vertically scrolling stops
Give each line its own layer on the GPU
Drop lineOverdraw and scroll-view-content div
Render each line number on its own layer
Manually set the gutter width to the width of a line number

We need to absolutely position line numbers to minimize repaints, but
the gutter needs to be wide enough to show them.
Position cursors as layers relative to the viewport
Allow horizontal scrolling
Position selections relative to viewport

This is getting closer, but lines still need to be opaque. Multi-line
selections will still need to be rendered behind the line layers so they
can extend to the edge of the viewport, so this code still has value.
Don't give lines a negative z-index

Removing the z-index makes them accessible via mouse in the inspector.
Give lines and line numbers an opaque background to support sub-pixel AA

Since lines and line numbers are now on the GPU, their text won't be
properly anti-aliased on low-resolution displays unless their layers
have a solid background.
Use explicit descendant selector for styling lines
Update line rendering specs for new layer scheme
Update line number rendering specs for new layer scheme
Position cursors relative to scrollLeft and fix specs
Fix horizontal scrolling spec
Fix the height/width of the editor in spec

Now that everything is absolutely position, the editor no longer assumes
a "natural" height and width. This can be addressed later if we want to
allow editors to expand based on their content.
Rename renderedRowRange to visibleRowRange

We only render visible rows now, so this makes more sense.