[SQL][SPARK-2212]HashJoin(Shuffled)

Currently only the nested loop join for outer joins, as part of the join optimization tasks [SPARK-2212](https://issues.apache.org/jira/browse/SPARK-2212), I initially add the hash based join for all type of joins. This is may some duplicated with [#734](https://github.com/apache/spark/pull/734).
I think this should probably just print out like a normal row, but with the values from both sides.

How about just pulling these changes into their own PR since they are generally useful and we can merge that right away.