Hash Join Initial build

A basic build of the hash join, it currently mimics the hashing style
of the bloom filter by hashing each column to be joined on using their
valueSource and doing a bitwise or with all other columns to be joined
upon to create the key for the hash map(this will be changed in the
future and is more of a placeholder).
An ArrayListMultimap<Integer, Row> is used for the hash table
Working basic Hash Join

Hash join so far works but has only been tested with a single join on
column
testMultiColumnJoin + fixing

added testMultiColumnJoin to tests
rows now joined outer first inner second
Comparison fields now tested for not null
More Tests and Fixing Collators

More tests added and collators bug is fixe
hashjoin.rowType() now implemented
OuterLeftJoin and more tests

OuterLeftJoin now available by use of boolean
tests added for outer left join, null columns,
Cleaning fixing

removed use of compound row in tests to build output row, this is not
dealt with inside the hash join operator
New hash join working

Hash join’s inner working has not been split between multiple nodes,
Using_HashJoin and HashJoin.  MapNestedLoops,Project are also used.
Outer row gets stored in the bindings as well as the HashTable
All tests are working correctly and all argument validation is tested
for
Cleaning/renaming and moving KeyWrapper

Cleaning up whitespace and renamed files to reflect trello names
Moved KeyWrapper to its own file
added header to KeyWrapper

added header to KeyWrapper
KeyWrapper Equal fix

KeyWrapper now uses ValuesSources.areEqual to compare matches
added check to make sure input object is an instance of a KeyWrapper
RowType added to constructors

HashTableLookup_Default now takes in the bound and hashed row type to
assert they are of the correct type
Using_HashTable now takes in the hashed rowType and asserts that all
rows from the stream to be hashed are of the correct type
cleaning

removing unused variable from test
merge master
Merge branch 'master' into HashJoin

Conflicts:
	src/test/java/com/foundationdb/sql/parser/CheckParserUsagesDT.java
conflict fix with merge

fixing merge conflict that caused error in testing
cleaning

cleaning
Expressions used for FieldsToCompare

Instead of using column numbers, TPreparedExpressions are used to
specify the columns to compare within the KeyWrapper
EvaluatableExpression changes

EvaluatableExpressions are now created prior to calling KeyWrapper to
avoid multiple call to the same method
TPreparedBoundField now used

HashTableLookup_Default now uses TPreparedBoundField and doesn’t
require a row type as the row its looks up in the hash table is in the
bindings
Optimizer plan nodes

UsingHashTable, HashTableLookup, and HashTable added to optimizer plan
nodes
HASH_TABLE added to JoinNode implementations