Fix for nexus 5 crashing in GL benches

GLBenches do not expect gl state  to change between onPerCanvasPreDraw and *PostDraw, but we do a clear and sometimes we clear as draw.  This causes us to bind vertex objects / programs / etc.

This change creates two new virtual methods which are called right before and immediately after timing.

BUG=skia:

Review URL: https://codereview.chromium.org/1379853003
diff --git a/bench/PathBench.cpp b/bench/PathBench.cpp
index 8c15711..e09fc3e 100644
--- a/bench/PathBench.cpp
+++ b/bench/PathBench.cpp
@@ -325,7 +325,7 @@
         return "path_create";
     }
 
-    void onPreDraw() override {
+    void onDelayedSetup() override {
         this->createData(10, 100);
     }
 
@@ -354,7 +354,7 @@
     const char* onGetName() override {
         return "path_copy";
     }
-    void onPreDraw() override {
+    void onDelayedSetup() override {
         this->createData(10, 100);
         fPaths.reset(kPathCnt);
         fCopies.reset(kPathCnt);
@@ -390,7 +390,7 @@
         return fInPlace ? "path_transform_in_place" : "path_transform_copy";
     }
 
-    void onPreDraw() override {
+    void onDelayedSetup() override {
         fMatrix.setScale(5 * SK_Scalar1, 6 * SK_Scalar1);
         this->createData(10, 100);
         fPaths.reset(kPathCnt);
@@ -438,7 +438,7 @@
         return "path_equality_50%";
     }
 
-    void onPreDraw() override {
+    void onDelayedSetup() override {
         fParity = 0;
         this->createData(10, 100);
         fPaths.reset(kPathCnt);
@@ -501,7 +501,7 @@
         }
     }
 
-    void onPreDraw() override {
+    void onDelayedSetup() override {
         // reversePathTo assumes a single contour path.
         bool allowMoves = kReversePathTo_AddType != fType;
         this->createData(10, 100, allowMoves);
@@ -769,7 +769,7 @@
         }
     }
 
-    void onPreDraw() override {
+    void onDelayedSetup() override {
         fQueryRects.setCount(kQueryRectCnt);
 
         SkRandom rand;