Add a test that calls all functions with arguments of all types that they claim to accept

Clean up various problems that it discovered. Log [CALCITE-525] "Exception-handling in built-in functions" for the remaining issues.

Close apache/incubator-calcite#28
Add a test case
ImmutableBitSet: convert to and from word arrays
Merge join algorithm for Enumerables; efficient Enumerable over random-access list.
[CALCITE-483][CALCITE-489] Update Correlate mechanics and implement EnumerableCorrelate (aka nested loops join)

Notable changes:
 * Correlation variable is produced by Correlate relation for its left input
 * In the right input, correlation is referred as RexFieldAccess(RexCorrelVariable)
 * De-correlation is still performed by default, however it can be disabled by forceDecorrelate=false connection property

fixes #20
[CALCITE-478] Move CSV tutorial (part 2) (Siva Narayanan)
Fix javadoc errors for java8

fixes #30
[CALCITE-506] Update EnumerableRelImplementor.stash so it is suitable for all kinds of classes
[CALCITE-462] Allow table functions in LATERAL expression
[CALCITE-527] Drop rowType field and constructor/copy argument of Calc
Minor cleanup in JdbcTest#testCloneGroupBy2