Use texture size to determine precision of texture coord varyings.

Review URL: https://codereview.chromium.org/778783002
Move shader precision out of GrShaderVar

Review URL: https://codereview.chromium.org/777443003
Make addUniform take a precision

Review URL: https://codereview.chromium.org/788733003
Increase timeouts for CSS3Gradients and GooglePlus pagesets

BUG=skia:3187
BUG=skia:3196

Review URL: https://codereview.chromium.org/786353002
Switch non-MPD nanobench path to use a separate canvas per tile

It is desirable that, when layer hoisting is disabled, the MPD and non-MPD timings be
roughly the same. Unfortunately, using a separate canvas for each tile (a requirement
for MPD) introduces its own discrepancy into the timing. Using a separate canvas for
each tile doesn't seem to make a difference for 8888 (see the non-MPD 8888 column below)
but slows down GPU rendering (see the non-MPD GPU column below). Since this is how
Chromium renders I propose switching to this regimen (even though it is "slowing down"
GPU rendering).

nanobench mean times (ms) with layer hoisting disabled (for desk_amazon.skp)

8888
                          MPD     non-MPD
1 canvas (old-style)     0.628    1.71
separate (new-style)     0.795    1.63

GPU
                          MPD     non-MPD
1 canvas (old-style)     2.34     1.69
separate (new-style)     2.32     2.66

Review URL: https://codereview.chromium.org/779643002
Update nanobench so the non-MPD path doesn't permit layer hoisting

Review URL: https://codereview.chromium.org/787923002
Rename CustomCoordTextureEffect to GrBitmapTextGeoProc.

Also add in explicit set for LCD text in invariantOutput.

BUG=skia:

Review URL: https://codereview.chromium.org/786293002
Use GrCoordTransform precision to set uniform matrix precision

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