optimize verts
optimize verts

Take advantage of the new virtual on SkShaderBase : appendStagesWithUpdater

If our shader supports that, we can draw each triangle without having to
recreate the entire pipeline/blitter.

This change produces 3 different loops:

tricolor only : uses private backdoor to update colors per triangle
has updater   : uses updater to update ctm per triangle
general       : rebuilds pipeline/blitter on each triangle

In a follow-up, we may be able to plumb updater through to other shaders
(other than image), which would have us land in the updater case more
often.

Before
    728.09  	verts_textures_colors	8888
    167.48 ?	verts_colors	8888
    510.17  	verts_textures	8888

After
    729.61  	verts_textures_colors	8888
    168.80  	verts_colors	8888
    219.58  	verts_textures	8888

Change-Id: I87a6e6dc23dfba3377d6f9a54818fe6b8d349018
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/235801
Commit-Queue: Mike Reed <f5cabf8735907151a446812c9875d6c0c712d847@google.com>
Reviewed-by: Florin Malita <a8262bf13ea8c26821e91ea9bca6740a77c96dcd@chromium.org>

aosp-mirror/platform_external_skia,HalCanary/skia-hc,google/skia,HalCanary/skia-hc,google/skia,google/skia,HalCanary/skia-hc,HalCanary/skia-hc,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,google/skia,google/skia,google/skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,HalCanary/skia-hc,HalCanary/skia-hc,google/skia,google/skia,HalCanary/skia-hc,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,HalCanary/skia-hc,HalCanary/skia-hc,google/skia,aosp-mirror/platform_external_skia,HalCanary/skia-hc,google/skia