Add -bb-rubberbandable CSS property

DRQS 37714496

This property will allow us to control, on a per element basis, whether or not
text within the element participates in rubberbanding.  The property is
inherited, and if any RenderText has it evaluate to "text", then the
RenderText's contents will be considered when rubberbanding.  If it evaluates
to "none", then the RenderText will be ignored during the rubberband process.
Implement rubberbanding

DRQS 37714496

There are two ways to enable rubberbanding:
* automatic mode
* manual mode

In the automatic mode, the client calls 'enableAltDragRubberbanding(true)' and
this enables code in WebView's mouse handler to automatically perform
rubberbanding when the user does Alt+Mousedrag.  The WebViewClient will be
notified with the new rubberband rectangle whenever the mouse moves.  Text will
be copied to the clipboard automatically on Alt+Mouseup.

In the manual mode, the client is responsible for handling the mouse events,
but WebView exposes methods to expand rectangles to enclose text, and to obtain
the text contained within a given rectangle.

The bulk of the rubberbanding implementation is contained in a separate
WebViewImplRubberband.cpp file.  This contains code that walks the render tree
to determine absolute position of text boxes, taking into account
transformations, clipping etc.  Note that we don't walk layers that have
transforms other than scale and translate.

When getting the text contained within a rectangle, we use some basic
heuristics to determine which text boxes are on the same line, then sort them
from left to right, adding an appropriate amount of spaces to fill the gaps
between them.

Also, TestShell has been modified to use the automatic mode.
Merge remote-tracking branch 'origin/feature/rubberband/26.0.1410.43' into feature/rubberband/28.0.1500.95

Conflicts:
	chromium/src/third_party/WebKit/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
	chromium/src/third_party/WebKit/Source/WebCore/css/CSSParser.cpp
	chromium/src/third_party/WebKit/Source/WebCore/css/CSSPrimitiveValueMappings.h
	chromium/src/third_party/WebKit/Source/WebCore/css/CSSProperty.cpp
	chromium/src/third_party/WebKit/Source/WebCore/css/CSSPropertyNames.in
	chromium/src/third_party/WebKit/Source/WebCore/css/StyleBuilder.cpp
	chromium/src/third_party/WebKit/Source/WebCore/css/StyleResolver.cpp
	chromium/src/third_party/WebKit/Source/WebCore/rendering/style/RenderStyle.cpp
	chromium/src/third_party/WebKit/Source/WebCore/rendering/style/RenderStyle.h
	chromium/src/third_party/WebKit/Source/WebCore/rendering/style/RenderStyleConstants.h
	chromium/src/third_party/WebKit/Source/WebCore/rendering/style/StyleRareInheritedData.cpp
	chromium/src/third_party/WebKit/Source/WebCore/rendering/style/StyleRareInheritedData.h
	chromium/src/third_party/WebKit/Source/WebKit/chromium/public/WebViewClient.h
	chromium/src/third_party/WebKit/Source/WebKit/chromium/src/WebViewImpl.cpp
	chromium/src/webkit/tools/test_shell/test_webview_delegate.h
	chromium/src/webkit/tools/test_shell/test_webview_delegate_win.cc
	chromium/src/webkit/tools/test_shell/webview_host_win.cc
	chromium/src/webkit/tools/test_shell/webwidget_host.h
	chromium/src/webkit/tools/test_shell/webwidget_host_win.cc
Implement rubberbanding in content_shell

RenderViewHost now exposes EnableAltDragRubberbanding, which is called whenever
content_shell finishes navigating.  This enables rubberbanding on the
underlying WebKit::WebView.

The rubberband rect feedback is sent to the browser process and displayed using
a new RubberbandOutline class.
Don't include invisible text/iframes when rubberbanding

DRQS 51016931
Merge remote-tracking branch 'origin/feature/rubberband/26.0.1410.43' into feature/rubberband/28.0.1500.95
Merge remote-tracking branch 'origin/feature/rubberband/28.0.1500.95' into feature/rubberband/30.0.1599.101

Conflicts:
	chromium/src/content/browser/renderer_host/render_widget_host_impl.cc
	chromium/src/content/browser/renderer_host/render_widget_host_view_win.h
	chromium/src/third_party/WebKit/Source/WebKit/chromium/WebKit.gyp
	chromium/src/third_party/WebKit/Source/core/css/DeprecatedStyleBuilder.cpp
	chromium/src/third_party/WebKit/Source/core/css/StyleResolver.cpp
	chromium/src/third_party/WebKit/Source/core/rendering/style/StyleRareInheritedData.cpp
	chromium/src/third_party/WebKit/Source/core/rendering/style/StyleRareInheritedData.h
	chromium/src/third_party/WebKit/Source/web/WebViewImpl.cpp
	chromium/src/third_party/WebKit/Source/web/WebViewImpl.h
	chromium/src/third_party/WebKit/public/web/WebViewClient.h
Add API to specify command-line switches

Normally, chromium gets the list of command-line switches directly from the
Win32 command line.  This commit adds an API that lets applications add
command-line switches programatically.
Reimplement disablePluginDiscovery in terms of appendCommandLineSwitch
Remove 'sandboxDisabled' flag in favor of appendCommandLineSwitch
Pass the right userData when canceling resource loader
Remove ASSERT_NOT_REACHED in UseCounter

This causes crashes due to the fact that we have custom CSS properties that
don't have histogram sample IDs.  We can eventually have our own UseCounter
service to collect these metrics, but for now, just prevent it from crashing.
Add support for rubberbanding in blpwtk2

This requires the 'feature/rubberband' branch to be merged, otherwise it is a
no-op.
Merge remote-tracking branch 'origin/feature/fixups/30.0.1599.101' into release/candidate
Fix compile errors for v30

* CSSPrimitiveValue has 'valueID' instead of 'ident'
* WTF::String no longer has 'characters'
* Add #include for WTF::StringBuilder
Add -bb-rubberbandable to the new CSSProperties.in

This generates the necessary code in StyleBuilder.cpp to support the
"-bb-rubberbandable" property.
Don't include newlines when getting text in rubberband

Since we are generating newlines based on the vertical position of text on the
page, we should not include newlines that are contained in text nodes.
Add a macro to indicate that RenderViewHost supports rubberbanding

This is so that blpwtk2 can conditionally compile rubberband support based on
whether the rubberband branch is merged or not.
Merge remote-tracking branch 'origin/feature/rubberband/30.0.1599.101' into release/candidate
Merge remote-tracking branch 'origin/feature/blpwtk2/30.0.1599.101' into release/candidate