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