[SPARK-2678][Core] Added "--" to prevent spark-submit from shadowing application options

JIRA issue: [SPARK-2678](https://issues.apache.org/jira/browse/SPARK-2678)

This PR aims to fix SPARK-2678 in a downward compatible way, and replaces PR #1699.

All arguments that follow a `--` are passed to user application. Before this change, `spark-submit` shadows application options:

```bash
# The "--help" option is captured by spark-submit
bin/spark-submit --class Foo userapp.jar --help
```

With the help of `--`, we can pass arbitrary options to user application:

```bash
# The "--help" option is now passed to userapp.jar
bin/spark-submit --class Foo userapp.jar -- --help
```
My bad, you're right. I should update the PR description.

While working on #1620, the `beeline` script had once been implemented with `spark-submit` to avoid duplicated `java` check and computing classpath, but then reverted because of the issue this PR is trying to fix (`beeline --help` shows `spark-submit` usage message).

And while working on this PR, I realized that `beeline` is only a JDBC client, and unrelated to Spark, I can just start it with `spark-class`. That's the reason why this change appear here.