[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
Hit a bug while fixing this: application options with names that `SparkSubmitArguments` recognizes are stolen by `SparkSubmit` instead of passed to the application. For example, when running `BeeLine` with `spark-submit`, passing `--help` option shows the usage message of `SparkSubmit` rather than `BeeLine`.

Since the `spark-internal` issue also touches this part of code, I tried to fix this bug together within this PR to avoid further conflict.