[ASTERIXDB-2523][RT][COMP] add support for hashing array fields

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
Add support for hashing array fields.
- Modified AMurmurHash3BinaryHashFunctionFamily and extracted the hashing function
into a private named hashing function "GenericHashFunction". Added hashing arrays.
- Modified hash join to include generating hash functions for the right branch
since now hash functions are type-dependent and cannot use the same hash functions
generated for the left branch.
- Added test cases.

Change-Id: Ibd0dc7f270730140226f54445705822049f5c863
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3241
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <tillw@apache.org>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index 834b435..d3c66b6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -3998,6 +3998,11 @@
   </test-group>
   <test-group name="group-by">
     <test-case FilePath="group-by">
+      <compilation-unit name="gby-array">
+        <output-dir compare="Text">gby-array</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="group-by">
       <compilation-unit name="core-01">
         <output-dir compare="Text">core-01</output-dir>
       </compilation-unit>
@@ -4605,6 +4610,13 @@
       </compilation-unit>
     </test-case>
   </test-group>
+  <test-group name="join">
+    <test-case FilePath="join">
+      <compilation-unit name="hash_join_array">
+        <output-dir compare="Text">hash_join_array</output-dir>
+      </compilation-unit>
+    </test-case>
+  </test-group>
   <test-group name="list">
     <test-case FilePath="list">
       <compilation-unit name="any-collection-member_01">
@@ -10323,6 +10335,11 @@
   </test-group>
   <test-group name="distinct">
     <test-case FilePath="distinct">
+      <compilation-unit name="array">
+        <output-dir compare="Text">array</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="distinct">
       <compilation-unit name="query-issue443">
         <output-dir compare="Text">query-issue443</output-dir>
       </compilation-unit>