Implicit SkTextBlob bounds

Compute blob bounds when the client doesn't pass explicit run rects to
the builder. This allows us to remove a couple of internal workarounds.

R=reed@google.com,mtklein@google.com,bungeman@google.com

Review URL: https://codereview.chromium.org/654873003
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index c57add4..709cb4c 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -2195,9 +2195,7 @@
 void SkCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y,
                               const SkPaint& paint) {
 
-    // FIXME: temporarily disable quickreject for empty bounds,
-    // pending implicit blob bounds implementation.
-    if (!blob->bounds().isEmpty() && paint.canComputeFastBounds()) {
+    if (paint.canComputeFastBounds()) {
         SkRect storage;
 
         if (this->quickReject(paint.computeFastBounds(blob->bounds().makeOffset(x, y), &storage))) {