Support for general reduction kernels.

Requires coordinated change in frameworks/base.

Requires coordinated change in frameworks/compile/libbcc in order
for RsTest to run.

At present, general reduction kernels are run single-threaded.

Also: Remove dead struct field MTLaunchStructForEach::sig.

Bug: 23535724
Change-Id: Ice17ccf20a902f8a106eaa62ec071d46e3c0ad8c
diff --git a/rsScript.cpp b/rsScript.cpp
index bc24292..bf28328 100644
--- a/rsScript.cpp
+++ b/rsScript.cpp
@@ -232,6 +232,18 @@
                             static_cast<Allocation *>(vaout), sc);
 }
 
+void rsi_ScriptReduceNew(Context *rsc, RsScript vs, uint32_t slot,
+                         RsAllocation *vains, size_t inLen,
+                         RsAllocation vaout, const RsScriptCall *sc,
+                         size_t scLen) {
+  Script *s = static_cast<Script *>(vs);
+  Allocation **ains = (Allocation**)(vains);
+
+  s->runReduceNew(rsc, slot,
+                  const_cast<const Allocation **>(ains), inLen,
+                  static_cast<Allocation *>(vaout), sc);
+}
+
 void rsi_ScriptInvoke(Context *rsc, RsScript vs, uint32_t slot) {
     Script *s = static_cast<Script *>(vs);
     s->Invoke(rsc, slot, nullptr, 0);