Add SkRecord::defrag().

Called by SkRecordOptimize(), this moves all the NoOps to the end and
slices them off.

This implementation with std::remove_if() is linear and doesn't malloc.

No diffs: https://gold.skia.org/search2?issue=1461663003&unt=true&query=source_type%3Dgm&master=false

BUG=skia:

Review URL: https://codereview.chromium.org/1461663003
diff --git a/tests/RecordTestUtils.h b/tests/RecordTestUtils.h
index e4421fa..a281566 100644
--- a/tests/RecordTestUtils.h
+++ b/tests/RecordTestUtils.h
@@ -10,6 +10,7 @@
 
 #include "SkRecord.h"
 #include "SkRecords.h"
+#include "Test.h"
 
 // If the command we're reading is a U, set ptr to it, otherwise set it to nullptr.
 template <typename U>