Allow objects without scrollbars to be scrollable

This CL is a refactoring of scrolling code to decouple the concept of 
'scrollable' from 'has scrollbars'. It adds a pure virtual userInputScrollable(orientation) method. Subclasses define
this to specify whether an object is allowed to scroll (e.g. 
A ScrollView can be scrolled if it has scroll mode Auto or Always). 

Also removed a few unused scrolling-related methods.

BUG=247055

Review URL: https://chromiumcodereview.appspot.com/16982005

git-svn-id: svn://svn.chromium.org/blink/trunk@155441 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Suppress zero-length text SVG inline renderers.

The SVG text layout functions assert non-zero metrics for SVG inline text (see
SVGTextLayoutEngine::layoutTextOnLineOrPath, for example). Normally, we don't
instantiate renderers for zero-length inline text (see
Text::textRendererIsNeeded), but the RenderSVGInlineText constructor performs
whitespace filtering to support xml:space semantics
(http://www.w3.org/TR/SVG/struct.html#LangSpaceAttrs) and can end up with empty
text while still passing the non-zero length test in Text::textRendererIsNeeded
(for example a single newline gets deleted when xml:space="default").

Enter RenderText::positionLineBox() which attempts to fix things up by removing
zero length inline boxes. But removing boxes at this point is bad for business
because it invalidates (marks as dirty and clears computed metrics) parent
boxes and sibling boxes during layout, and throws subsequent computations off.

The patch adds isChildAllowed()-based validation for SVG inline text. This prevents zero-len-text
renderers from being inserted into the tree in the first place.

Most test result diffs are zero-lenght DRT RenderSVGInlineText variance, but
some reveal prior issues:

* svg/W3C-SVG-1.1/text-align-08-b-diffs.html has incorrect results checked in
  (one text group is missing due to this bug).
* svg/dom/altGlyph-dom.xhtml(altGlyph-dom.js) also has incorrect results
  hardcoded in.
* svg/animations/length-list-animation.svg is failing miserably without this
  patch, but the failure is only visible when testing manually because the
  reference SVG is failing in the same manner.

Also removing a redundant test in SVGTextLayoutEngine::currentVisualCharacterMetrics(): the while loop condition handles that case in an equivalent manner.

BUG=263742
R=pdr@chromium.org,dschulze@chromium.org

Review URL: https://chromiumcodereview.appspot.com/21103012

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