[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
```
This behavior is actually inherited from [the current master code](https://github.com/apache/spark/blob/e8e0fd691a06a2887fdcffb2217b96805ace0cb0/core/src/main/scala/org/apache/spark/deploy/SparkSubmitArguments.scala#L347-L349). But I agree with you, since `--` is a newly introduced argument passing mode, we should allow empty argument.