cc: Split up blending tests to avoid timeouts

The current tests time out quite a bit when using swiftshader.  I
suspect that this is due to shader compilation on a per-blend mode
basis, as reducing pixels rastered did not seem to make any difference.
The goal here is to reduce the maximum length of any one test so that
fewer tests time out and these tests keep causing flakiness and getting
disabled.

This test breaks up each individual blend mode test into parameterizing
by blend mode and rastering what used to be a single column in a larger
image into its own image.  Instead of saving out a million data pngs,
instead this modifies the test framework to use expected pngs as well.
This assumes that Skia's blend modes work properly and verifies that
software and gl renderer match the output of those blend modes on an
SkCanvas.

In terms of total time of the test, splitting each test up into 16
different tests on Linux debug for me has each individual test
completing in 1/4 of the time of the original (1/4x * 16 = 4x increase
overall).  However, when running the entire test suite in parallel, this
patch speeds up running cc_unittests from ~70s to ~60s overall.  So,
I think this is overall a win, both in terms of individual and total
test time.

Bug: 870326,872733
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I4791a0a2369f9f17af7bb2a6ba95d7f29dee8b42
Reviewed-on: https://chromium-review.googlesource.com/1180570
Reviewed-by: weiliangc <weiliangc@chromium.org>
Commit-Queue: enne <enne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584616}
12 files changed