Cache non-animated SourceGraphic for deferred filters.

In order to allow Skia to cache filters whose source
graphic doesn't change from frame to frame, move the 
drawing of the primitives from between the 
saveLayer()/restore() to an SkPicture contained in an 
SkPictureImageFilter node, generated by SourceGraphic.
In this way, the SkImageFilter graph can cache results 
of rendering that SkPicture as it does for all other nodes.

This required breaking out filter application separately
from the drawing of the source graphic. Fortunately, that's 
exactly how the old non-deferred path worked, so much of
this change removes differences between the old and new
paths.

beginDeferredFilter() now starts SkPicture recording 
via DisplayList. endDeferredFilter() ends the SkPicture 
recording and puts the result into SourceGraphic, which 
will then create an SkPictureImageFilter containing
that display list in its createImageFilter() virtual.
The actual drawing is broken out into drawDeferredFilter().

SourceAlpha also needs to be changed to reference its 
SourceGraphic, so that it can bootstrap off the same 
SkPicture rendering. This is accomplished by storing the
SourceGraphic in the SkiaImageFilterBuilder while building.

We also take advantage of the code for the legacy path to 
simply skip recording when the source primitive is 
unchanged, and only call drawDeferredFilter() to draw the 
filter graph in that case (skipping begin/end).

Also remove the external SkImageFilter cache, since its
functionality is now subsumed by the UniqueIDCache in
Skia.

With this change, static.bobdo.net/Analog_Clock.svg goes
from 5FPS to 55FPS on my Linux box (vs. 30FPS on the
non-deferred path).

BUG=296620

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

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