Add method to GrProgramResource to record that pending a execution was completed.

BUG=skia:2889
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/543833002
diff --git a/include/gpu/GrProgramElement.h b/include/gpu/GrProgramElement.h
index 67135a3..6fdc98d 100644
--- a/include/gpu/GrProgramElement.h
+++ b/include/gpu/GrProgramElement.h
@@ -71,13 +71,7 @@
 private:
     void convertRefToPendingExecution() const;
 
-    void completedExecution() const {
-        this->validate();
-        --fPendingExecutions;
-        if (0 == fRefCnt && 0 == fPendingExecutions) {
-            SkDELETE(this);
-        }
-    }
+    void completedExecution() const;
 
     mutable int32_t fRefCnt;
     // Count of deferred executions not yet issued to the 3D API.