DRILL-396: QuerySubmitter enhancements
Drill 342/238: Clean up Parquet tests.
Update Hive test data generator so that it won't fail on subsequent runs.
DRILL-398: Fix build/packaging issues with storage-hive jars
1. Remove hive-exec dependencies from root pom.xml and move hive-hbase dependency to contrib/storage-hive/pom.xml. Idea is to download all required hive dependencies through storage-hive artifact.
2. In distribution/pom.xml exclude hive-exec jar from storage-hive dependency. Storage-hive jar already contains the shaded hive-exec.
3. In contrib/storage-hive/pom.xml add a target to unpack the classes in storage-hive.jar into contrib/storage-hive/target/classes directory. Unpacking is needed because when you run 'mvn test' from root directory, dependencies within the project (such as protocol or storage-hive) are resolved to target/classes directory instead of jar. This is by design in Maven. If we don't unpack, we get class not found errors for classes in storage-hive.jar while running tests only.
Fix group by, removing aggregate and segment remnants.  Add new simple test queries to make sure parsing isn't broken in future.
Fix binary tree so that more than 2 binary arguments are correctly translated from RexNode.
Update binary function lookup to use lowercase.
DRILL-414: Update root pom.xml so that mapr dependency excludes commons-logging.
DRILL-326: Fixes for merge join allocations
DRILL-346: Move constant expressions to setup.
DRILL-413: Parse issue in QuerySubmitter
DRILL-406: Move JSON integer range to use BigInt instead of Int
DRILL-417: Bug fixes in repeated vector offsets
Drill-418: Fixes for Parquet nullable reader bug.
Join rel > logical conversion fixes
Drill-379: support part of string and math functions
fix drill trace to point to /tmp so that Travis doesn't fail.
Update join test to use in tree paths.
DRILL-387: Support using Hive simple UDFs in Drill
* As part of this change FunctionDefinition (and related code)
* are deleted, instead the same information available in
* Function Holders are used whenever required
* Freemarker/CodeModel codegen for Drill ObjectInspectors
* Comparator function cleanup
Small updates to Hive UDF: fixes for aggregate and constant checker to add errors to error collector.  Register hive udfs without descriptions using fully qualified name with underscores instead of periods.
DRILL-335: Implement Hash Aggregation

1. Implementation of the hash aggregation execution operator - this has two main parts: the HashAggTemplate and the HashAggBatch.
2. Implementation of a hash table which is used by the hash aggregation.  The hash table hash two main parts: the HashTableTemplate and the ChainedHashTable. The hash table internally uses the notion of 'BatchHolder' to keep track of all keys that can fit within one batch of 64K values.  New BatchHolder objects are created as needed.  Each BatchHolder has its own vector container.  The HashAggregate also has a similar structure and it keeps track of the workspace variables.
 (NOTE: An initial design document for the hash aggregation and hash table was already attached with Drill-335.  The document has not yet been updated with the latest implementation ... will try to do that in the near future).
3. Jinfeng's changes to use workspace vectors in the generated code for aggregate functions (previously, for streaming aggregate we only needed to maintain workspace variable for 1 running group; however for hash aggregate we need to maintain it for all groups).
4. Fix for Drill-318: because of #3 above, the previous fix for Drill-318 is not valid anymore.  I modified the template generation code for the aggregate functions such that they conform to the new infrastructure.
5. The original AggTemplate, AggBatch and Aggregator classes have been moved to corresponding StreamingAggTemplate, StreamingAggBatch and StreamingAggregator in order to differentiate it from hash aggregation.  These appear as new files but the code there has not changed.

I have run several tests manually as part of TestHashAggr...these tests use TPC-H data and in particular a relatively large 'Orders' table.  However, I have not yet packaged the tests to run as part of JUnit since the location and size of the parquet files needs to be figured out. I will continue to work on that.
DRILL-425 mock-sub-scan is not setting 'lastSet' in NullableVarCharVector or NullableVar16CharVector