minor fixes to cubics code and overall alignment of how bounds and tops are computed for all curve types

All but 17 extended tests work.

A helper function is privately added to SkPath.h to permit a test to modify a given point in a path.

BUG=skia:3588

Review URL: https://codereview.chromium.org/1107353004
diff --git a/src/pathops/SkPathOpsConic.h b/src/pathops/SkPathOpsConic.h
index 8251901..bc73049 100644
--- a/src/pathops/SkPathOpsConic.h
+++ b/src/pathops/SkPathOpsConic.h
@@ -72,6 +72,10 @@
         return fPts.isLinear(startIndex, endIndex);
     }
 
+    bool monotonicInX() const {
+        return fPts.monotonicInX();
+    }
+
     bool monotonicInY() const {
         return fPts.monotonicInY();
     }
@@ -109,8 +113,6 @@
         return conic.subDivide(a, c, t1, t2, newWeight);
     }
 
-    SkDPoint top(double startT, double endT, double* topT) const;
-
     // utilities callable by the user from the debugger when the implementation code is linked in
     void dump() const;
     void dumpID(int id) const;