DRILL-317: StorageEngineRegistry creates a new StorageEngine everytime getEngine() is called
DRILL-311: Replace OrderedPartitionBatchCreator with OrderedPartitionSenderCreator
DRILL-312: Modularize org.apache.drill.exec.physical.impl.ImplCreator using operator creator registry
DRILL-313: Fix for Limit operator only transferring buffers on new schema
DRILL-274: Spooling batch buffer
DRILL-303: RecordBatchLoader.load always creates new schema
DRILL-301: Join two tables hit IndexOutOfBoundsException
DRILL-297: Trace operator throws NPE if the configured path is not writable
DRILL-293: Sort operator throws NPE on empty record batch
DRILL-281 Add broadcast sender
Add a unit test case using TPCH related queries.
DRILL-316: Implement explicit casting
Includes following changes:

Parse syntax to support explicit cast function in physical or logical plan.

prototype of explicit casting : parsing from plan's expr, and call generated cast code.

Prototype of explicit cast with unit test.

explicit cast: create different cast for type with fixed size vs with var size.

explicit cast : minor change in comments, varname, etc.

Drill-316 : explicit cast. change func def for cast with var size.

Drill-316: minor change in unit test case for explicit cast.

Drill-316 : modify the function def for cast functions.

DRILL-316: prototype impl of cast from/to var-length type.

Dirll-316 : add test case for explicit cast.

Drill-316: explicit cast into varchar type from int, bigint, float4, float8. unit test physical plan added.

Drill-316: change parser syntax for explicit cast. Add more test case physical plans.

DRILL-316: explict cast. Use functiom template to generate all cast functions. Currently, excplict
cast supports cast between int, bigint, float4, float8, varchar, varbinary. (total 30 combinations).

Drill-316: explict cast - add test case for nested cast functions.

Drill-316: minor change to function template for explicit cast.

DRILL-316: add junit test case for explict cast, using 7 json physical plans.

DRILL-316: explict cast. remove a test json file.

DRILL-316: explicit cast. add a json testcase.

DRILL-316: check return type for function resolution. delete two un-needed test json files.

Drill-316: code change for review comment 1 and 2.

Drill-316: address review comment 3.

Drill-316: address testcase comments.

Drill-316: Decode byte array directly into int/long, when cast varchar/varbinary into int/bigint.

Drill-316: minor change to grammer rule for cast.
DRILL-259: Implicit cast precedence work

Includes following changes:
Created resolvers and mini precedence map

changed operator resolution by adding getCost method

Updated precedence map for operator resolution - typecast

Modified DrillFuncHolder:getCost() to allow null arguments type in cast

Cast Null arg precedence

Added type cast rules : isCastable()

Added type cast rules : isCastable()
DRILL-259: Implicit cast functionality

Includes following changes:

Implicit cast : WIP.

Implicit cast: work in progress 2.

implicit_cast: workin in progress 3.

implicit cast : work in progress. Prototype works.

Implicit cast: add unit testcase. Handle null vs non-null type.

Implicit cast: add unit test. change comparision operator's allsame from true to false.

Drill-259: implicit cast. Rebase on Drill-316 explicit cast branch.

DRILL-259: implicit cast . reverse change to codegenerator.

DRILL-259: implicit cast. code clean.

DRILL-259: code clean.

Drill-259: add apache license to 7 new java files. reverse the change to pom.xml

Drill-259: minor change to test case.

Drill-259: implicit cast - process NullExpression. Convert NullExpression into TypedNullConstant.

Drill-259: implicit cast. Revise according to review comments.
DRILL-334: Subdivide Drillbit control and data messages. Add support for socket backpressure.  Add TopLevel and Child memory allocator with debug mode to capture memory leaks.  Various memory leak fixes to get build to complete.

Also includes fixes from reviews by Tim.
DRILL-352: Extract ClassGenerator from CodeGenerator.  Use hierarchal set of ClassGenerators to support implementation of an arbitrarily complex inner class hierarchy.  Introduce @RuntimeOveridden annotation to allow overrides of inner classes without requiring abstract inner classes.  Update operators to use methods.  Add test for inner class generation.  Remove support for JDK based compilation, focusing entirely on Janino based compilation.
Merge remote-tracking branch 'upstream/master' into aggr_branch

Conflicts:
	exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ImplCreator.java
	exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/StreamingAggBatch.java