First version of incremental topological sort

In order to solve both the VRAM budget for explicit resource allocation and DDL incremental flush problems we will need to always have the opLists be sorted.

This will also help partial flushes.

Change-Id: I3ac2baf622415925ab5c403b7800f3fc49e59838
Reviewed-on: https://skia-review.googlesource.com/144000
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
diff --git a/gn/tests.gni b/gn/tests.gni
index 7f3b0f5..86674fc 100644
--- a/gn/tests.gni
+++ b/gn/tests.gni
@@ -120,6 +120,7 @@
   "$_tests/ImageNewShaderTest.cpp",
   "$_tests/ImageTest.cpp",
   "$_tests/IndexedPngOverflowTest.cpp",
+  "$_tests/IncrTopoSortTest.cpp",
   "$_tests/InfRectTest.cpp",
   "$_tests/InsetConvexPolyTest.cpp",
   "$_tests/InterpolatorTest.cpp",