DRILL-1835: Fix sort and join when results include complex types
DRILL-1838: MapVector should late bind/replace vector if current vector is null valued
DRILL-1839: Clean up complex writers per batch if project has a ComplexWriter function evaluation
DRILL-1843: Support per-batch schema change at RecordBatchLoader
DRILL-1845: Do not pass partition columns to parquet reader
DRILL-1848: Specify value of MAX_QUERY_MEMORY_PER_NODE_KEY in bytes instead of MB. Fixes the external sort running out of memory.
DRILL-1846: Use max receiver width during stats collection for parallelism planning.  SingleMergeExchange and UnionExchange have a max receive width of 1.  Others can go higher.
DRILL-1788: Test for case-insensitive join. Fix is in Calcite version 0.9-drill-r11.

Bump up optiq version to 0.9-drill-r11.

Refactor TestExampleQueries by moving the Star queries to separate test file.
DRILL-391:  Test case for large IN list (actual fix/workaround is in Calcite version 0.9-drill-r12).

Bump up Calcite version to 0.9-drill-r12.
DRILL-1864: Remove incubator disclaimer
DRILL-1865: Reduce buffer size for the rpc buffer
Disable flapping limit tests: to be fixed as part of DRILL-1866
Started with updated byte code rewrite from Jacques
Fixed several problems with scalar value replacement:
- use consistent ASM api version throughout
- stop using deprecated ASM methods (actually causes bugs)
  - visitMethodInsn()
- added a couple of missing super.visitEnd()s
- fixed a couple of minor FindBugs issues
- accounted for required stack size increases when replacing holders for
  longs and doubles
- added accounting for frame offsets to cope with long and double local
  variables and value holder members
- fixed a few minor bugs found with FindBugs
- stop using carrotlabs' hash map lget() method on shared constant data
- fixed an incorrect use of DUP2 on objectrefs when copying long or double
  holder members into locals
- fixed a problem with redundant POP instructions left behind after replacement
- fixed a problem with incorrect DUPs in multiple assignment statements
- fixed a problem with DUP_X1 replacement when handling constants in multiple
  assignment statements
- fixed a problem with non-replaced holder member post-decrements
- don't replace holders passed to static functions as "out" parameters
  (common with Accessors on repeated value vectors)
- increased the maximum required stack size when transferring holder members to
  locals
- changed the code generation block type mappings for constants for external
  sorts

In the course of this, added increased checking of intermediate stages of code
rewriting, as well as logging of classes that cause failures.
- work around a bug in ASM's CheckClassAdapter that doesn't allow for checking
  of inner classes
Added comments, tidied up formatting, and added "final" in a number of places.