Speed up SVG sprites by only painting the source rect in SVGImage::draw

Previously we painted an entire SVG sprite image, even if only a small
region was needed. This patch fixes this mistake by only painting
the minimum required area.

This patch takes a high-profile SVG scroll demo by adrianosmond from
around ~10fps to 30+fps. A minimized example of this bug is at:
philbit.com/sprites2.html (improved from less than 1fps to 30+fps)

BUG=253091

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

git-svn-id: svn://svn.chromium.org/blink/trunk@153069 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Expose WorkerGlobalScope interface in worker environment

Expose WorkerGlobalScope interface in worker environment as per the latest
specification:
http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#the-workerglobalscope-common-interface

Also expose the SharedWorkerGlobalScope interface when the JavaScript global environment is a
shared worker environment, and the DedicatedWorkerGlobalScope interface when the JavaScript
global environment is a dedicated worker environment:
http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#sharedworkerglobalscope
http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#dedicatedworkerglobalscope

Split webexposed/global-constructors-listing-worker.html test case into 2 tests (for shared
and dedicated workers) to validate the change.

The semantics of the [GlobalContext] IDL extended attribute has changed to support this
use case. The value for the extended attribute is now the name of the interface to which the
Constructor attribute should be added (Window, WorkerGlobalScope, SharedWorkerGlobalScope...).
It is possible to specify several interface names by using '&' as separator. For e.g.
[GlobalContext=Window&WorkerGlobalScope].

BUG=253473
R=haraken@chromium.org

Review URL: https://codereview.chromium.org/17826003

git-svn-id: svn://svn.chromium.org/blink/trunk@153070 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Make amazon.com stop upconverting strings

Amazon had two sources of upconversion.  One from XHR.send(), the other
from <area coords="1,2,3">

Both were easy to fix by teaching them about 8-bit strings.

I moved Length.cpp's custom "count" function into StringImpl and
made it 8-bit aware.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/17733006

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