[SPARK-2236][SQL]SparkSQL  add SkewJoin

Hi all,
I want to submit a SkewJoin operator in SparkSql joins.scala.

In some case ,data skew happens.SkewJoin  sample the table rdd to find the largest key,then make the largest key
rows as a table rdd.The streamed rdd will be made  as mainstreamedtable rdd without the largest key and the maxkeystreamedtable rdd
with the largest key.
Then,join the two table  with the buildtable.
Finally,union the two result rdd.
This can be done like 
```
val (maxKeyStreamedTable, mainStreamedTable) = streamedTable.partition(row => {
  streamSideKeyGenerator(row).toString().equals(maxrowKey.toString())
})
```