Trim FontSelector interface a bit.

A two-parter:
1) Split off FontCacheClient interface and make FontCache forget about
FontSelector altogether.
2) De-interface font invalidation callback registration/unregisration,
since they are only used in Source/core. This costs us a couple of
static_casts, but overall, it still looks cleaner.

R=ksakamoto@chromium.org,eae
BUG=315783

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

git-svn-id: svn://svn.chromium.org/blink/trunk@165351 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Revert "Cache SkTypeface in FontPlatformData on Mac"

This reverts commit bc0998dd326f2ce6f32ee622f2f6eaf394ae3d5[1] due to
an assertion on OSX.

[1] https://src.chromium.org/viewvc/blink?view=rev&revision=165347

BUG=335782
TBR=leviw
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/blink/trunk@165352 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Suppress some no-op GraphicsContext calls

The CL avoids commiting deferred canvas saves for a few easy to catch
no-op GC calls.

This reduces the number of SkPicture draw ops by ~3%, and shows minor
(<1%) rasterization time gains.

R=schenney@chromium.org,senorblanco@chromium.org

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

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