factor Engine out of ok core

This makes Engines (task execution strategies: serial, thread, fork)
pluggable just like most of the rest of ok.  It removes the thread and
process limits, as I find myself rarely caring about what they are
exactly.  Instead of limiting to num-cores, we just allow any number of
concurrent threads, and any number of concurrent child processes subject
to OS limitations.

Change-Id: Icef49d86818fe9a4b7380efb60e73e40bc2e6b73
Reviewed-on: https://skia-review.googlesource.com/27140
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 6f39b5d..5b7b787 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -891,14 +891,14 @@
     if (defined(invoker.is_shared_library) && invoker.is_shared_library) {
       shared_library("lib" + target_name) {
         forward_variables_from(invoker, "*", [ "is_shared_library" ])
-        configs += [ ":skia_private", ]
+        configs += [ ":skia_private" ]
         testonly = true
       }
     } else {
       _executable = target_name
       executable(_executable) {
         forward_variables_from(invoker, "*", [ "is_shared_library" ])
-        configs += [ ":skia_private", ]
+        configs += [ ":skia_private" ]
         testonly = true
       }
     }
@@ -1268,6 +1268,7 @@
     sources = [
       "tools/ok.cpp",
       "tools/ok_dsts.cpp",
+      "tools/ok_engines.cpp",
       "tools/ok_srcs.cpp",
       "tools/ok_test.cpp",
       "tools/ok_vias.cpp",