Rewrite NaN checks in terms of SkScalarIsNaN()

We are trying to replace Skia's NaN checker with our own in Mozilla,
so it would be nice to have to patch a single place by making sure
these NaN checks used SkScalarIsNaN().

BUG=skia:

Review URL: https://codereview.chromium.org/809443002
Roll libwebp to v0.4.2 (latest stable) to fix annoying build warning.

This warning should now go away:

../../third_party/externals/libwebp/src/enc/quant.c:105:23: warning: unused variable 'kCoeffThresh' [-Wunused-const-variable]
static const uint16_t kCoeffThresh[16] = {

BUG=skia:

Review URL: https://codereview.chromium.org/807553002
Revert of Roll libwebp to v0.4.2 (latest stable) to fix annoying build warning. (patchset #1 id:1 of https://codereview.chromium.org/807553002/)

Reason for revert:
uses __builtins not available on all our compilers

Original issue's description:
> Roll libwebp to v0.4.2 (latest stable) to fix annoying build warning.
>
> This warning should now go away:
>
> ../../third_party/externals/libwebp/src/enc/quant.c:105:23: warning: unused variable 'kCoeffThresh' [-Wunused-const-variable]
> static const uint16_t kCoeffThresh[16] = {
>
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/e655557a551c545f4153b0764269298cd01cd0c0

TBR=caryclark@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/795823005
Silence warnings from libnanomsg on Mac like we do on Linux.

This will silence these warnings:

../../third_party/externals/nanomsg/src/core/global.c:162:34: warning: missing field 'unused' initializer [-Wmissing-field-initializers]
static struct nn_global self = {0};

../../third_party/externals/nanomsg/src/utils/clock.c:44:61: warning: missing field 'denom' initializer [-Wmissing-field-initializers]
static mach_timebase_info_data_t nn_clock_timebase_info = {0};

BUG=skia:

Review URL: https://codereview.chromium.org/803113003
Fix rrects that are large enough that we lose/gain a bit when we add the radius to a bounds coordinate.

add test that triggers assert in addRRect

BUG=skia:3239

Review URL: https://codereview.chromium.org/803153003
Add xp optimization for RGB coverage.

This is needed since clearColorStages is being changed to ignore color input. For RGB coverage,
we want to clear all the color stages (since we know the final output color), but we don't want
to ignore the color input since it is needed.

In future we will change this so the XP stores the color internally and thus can tell the GP to
simiply ignore color.

BUG=skia:

Review URL: https://codereview.chromium.org/791933006
skimage, die die die

DM's running with --images on all the bots now.  They look happy.

BUG=skia:3235

Review URL: https://codereview.chromium.org/804133003
There can be only one (SkRandom)!

Remove SkLCGRandom. We already decided the new one was better, which is
why we wrote the new SkRandom.

Convert GMs that were using SkLCGRandom to use the improved SkRandom.
Motivated by the fact that these GMs draw differently on some runs. We
believe this to be a result of using the old SkLCGRandom.

Add each of the tests that were using SkLCGRandom to ignore-tests.txt,
since we expect they'll draw differently using SkRandom.

Move a trimmed down version of SkLCGRandom into SkDiscretePathEffect.
In order to preserve the old behavior, trim down SkLCGRandom to only
the methods used by SkDiscretePathEffect, and hide it in
SkDiscretePathEffect's cpp file.

BUG=skia:3241

Review URL: https://codereview.chromium.org/805963002
Rolling libwebp broke our iOS builds.  Silence warnings instead.

BUG=skia:

Review URL: https://codereview.chromium.org/803213002
devirtualize some functions on GrGpu

Review URL: https://codereview.chromium.org/811483003
Delete old bench expectation code.

Just noticed these were still here.

BUG=skia:

Review URL: https://codereview.chromium.org/801373003
Add missed convexpaths.

TBR=reed
NOTRY=True
NOTREECHECKS=True
BUG=skia:3241

Review URL: https://codereview.chromium.org/805043005
add paint::getFontBounds()

BUG=skia:

Review URL: https://codereview.chromium.org/804903006
Look at DYNAMIC_ANNOTATIONS_ENABLED now.

Defining SK_DYNAMIC_ANNOTATIONS_ENABLED as 1 whenever DYNAMIC_ANNOTATIONS_ENABLED was 1
seems to be working fine for Chrome.  Should be we can just use DYNAMIC_ANNOTATIONS_ENABLED.

BUG=skia:

Review URL: https://codereview.chromium.org/810513002
pass dst-rect through from drawBitmapRect for better precision

BUG=skia:

Review URL: https://codereview.chromium.org/797963002
Move all non-program cache functions out of GrGpuGL_program.cpp

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