[SPARK-2410][SQL][WIP] Cherry picked Hive Thrift/JDBC server

JIRA issue: [SPARK-2410](https://issues.apache.org/jira/browse/SPARK-2410)

Cherry picked the Hive Thrift/JDBC server from [branch-1.0-jdbc](https://github.com/apache/spark/tree/branch-1.0-jdbc). 

(Thanks @chenghao-intel for his initial contribution of the Spark SQL CLI.)

TODO

- [x] Use `spark-submit` to launch the server
- [x] Migration guideline draft for Shark users
There is a lot of code here devoted to finding the assembly jar, checking java, etc. I think this is all redundant with code that already gets triggered when `spark-submit` is called, ideally we won't have this in multiple places.

The `spark-submit` script used to allow you to set the jar name to be `spark-internal` in which case it wouldn't require you to pass in a jar (since the Spark assembly is already added automatically). I didn't realize, but that was removed in https://github.com/apache/spark/commit/4b8ec6fc#diff-4d2ab44195558d5a9d5f15b8803ef39dL47 and replaced with more specific versions for the shell. Anyways, it would be good to add back a generic `spark-internal` for other internal classes like this.

Then this script can be very simple, it will just call `spark-submit` and then pass the class as `org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver`.