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
DRILL-411: Fix Optiq to Drill conversion of varchar literals.
DRILL-432: Can not run 'sqlline' on Windows with CYGWIN
* Clean up and unify various shell scripts.
DRILL-429: Remove extraneous casts.

Change cast from a function call to a new, separate type of expression.
Add test to confirm functionality.
DRILL-446 Fix Json Array parsing
- Add TPC-H Data as test dependency (automatically downloads from s3 on first execution)
- Update avg function to divide using double instead of integers
- Update classpath file system to return correct size information (to allow cp use of Parquet files)
- Enhance BaseTestQuery to support all query types (sql, physical logical) and execution from file
- Add TPC-H queries updated to use TPC-H test data (disabled)
- Update field name matching to be case insensitive.
- Treat CHAR literals like VARCHAR in Optiq
- Add clear as part of VectorUtil
- Add hash aggregation physical plan executions using tpch data.
Fix ScreenCreator so that it captures memory leak failure before returning successful result.  Fix memory bugs found by fixing memory leak detection error.
More memory fixes
Add git.properties to build for reference purposes.
DRILL-451: Throw runtime exception when json reader encounters parse exception
DRILL-445: Enable FMPP maven plugin execution with eclipse
DRILL-431: MapR profile - unit tests try to use localhost as the MapR cluster

This was caused by incorrect configuration key: "fs.name.default", but should be "fs.default.name"

Replaced all occurrences of both with variable FileSystem.FS_DEFAULT_NAME_KEY

also updated hadoo-core version number for mapr profile
DRILL-444: Support using (NOT) LIKE and (NOT) SIMILAR TO in SQL queries
Add TPC-H sample data to distribution tarball.
Drill-449: Catch parsing error thrown by Antlr parser, when expression has error, and stop the execution immediately.

DRILL-449: minor change to test case.
DRILL-385: Implement Top-N sort operator
DRILL-386: Implement External Sort operator