Move inline stylesheet cache decision making from StyleSheetContents to StyleEngine

This separates the decisions about caching StyleSheetContents for <style> elements
from those related to <link> elements. This makes the code clearer as there are
fewer conditions that could cause uncacheability (for example, the StyleSheetContents
for <style> elements could never be for an @import rule).

And since the <style> cache is per-StyleEngine (and thus per-Document), the
<style> case can now safely cache stylesheets that include @media rules.
This speeds up the included performance test from ~90ms on my Z620 to ~50ms,
and improves the biggest block of chromestatus.com load performance by ~20%.

This patch also cleans up StyleSheetContents a bit, collapsing the maybeCacheable()
method into isCacheable() and making appropriate accessors const.

BUG=342507

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

git-svn-id: svn://svn.chromium.org/blink/trunk@169610 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fix promise resolution of FontFaceSet#load()

This patch changes the promise resolution logic of FontFaceSet#load()
to match the spec [1], in the following ways:

1. Rejects the promise with SyntaxError if the font argument fails to
   parse.
2. Otherwise, the promise should be resolved in the same way as
   Promise.all() called with all of the results of FontFace#load() of
   the matching font faces, i.e.
2.1. Resolves the promise with an array of the matching font faces when
     all the fonts are loaded, or
2.2. Rejects the promise with the rejection value of the first failed
     font face.

The new ScriptPromiseResolver Vector overloads need NoInline version of
v8Array, since existing v8Array() uses toV8 inside and hence requires
generated headers (see crbug.com/321569 for details of a similar issue).

[1] http://dev.w3.org/csswg/css-font-loading/#font-face-set-load

TEST=fast/css/fontfaceset-load.html
BUG=53213

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

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