Adds support for multi-input kernels to Frameworks/RS.

This patch modifies Frameworks/RS in the following ways:
* Adjusted the data-layout of the C/C++ version of RsForEachStubParamStruct to
  accommodate a pointer to an array of input allocations and a pointer to an
  array of stride sizes for each of these allocatoins.
* Adds a new code path for Java code to pass multiple allocations to a RS
  kernel.
* Packs base pointers and step values for multi-input kernels into the new
  RsForEachStubParamStruct members.

Change-Id: I46d2834c37075b2a2407fd8b010546818a4540d1
diff --git a/rsAllocation.cpp b/rsAllocation.cpp
index 3fbbfff..afa3a8a 100644
--- a/rsAllocation.cpp
+++ b/rsAllocation.cpp
@@ -531,6 +531,19 @@
 #endif
 }
 
+bool Allocation::hasSameDims(const Allocation *other) const {
+    const Type *type0 = this->getType(),
+               *type1 = other->getType();
+
+    return (type0->getCellCount() == type1->getCellCount()) &&
+           (type0->getDimLOD()    == type1->getDimLOD())    &&
+           (type0->getDimFaces()  == type1->getDimFaces())  &&
+           (type0->getDimYuv()    == type1->getDimYuv())    &&
+           (type0->getDimX()      == type1->getDimX())      &&
+           (type0->getDimY()      == type1->getDimY())      &&
+           (type0->getDimZ()      == type1->getDimZ());
+}
+
 
 /////////////////
 //