[SPARK-?] : Enrich Spark Shell - based on the work for SAPRK-1186.

Currently it supports the following options.

```
Usage: spark-shell [OPTIONS]

OPTIONS:

Basic:

    -h  --help              : Print this help information.
    -c  --cores             : The maximum number of cores to be used by the Spark Shell.
    -em --executor-memory   : The memory used by each executor of the Spark Shell, the number
                              is followed by m for megabytes or g for gigabytes, e.g. "1g".
    -dm --driver-memory     : The memory used by the Spark Shell, the number is followed
                              by m for megabytes or g for gigabytes, e.g. "1g".
    -m   --master           : A full string that describes the Spark Master, e.g. "local" or "spark://localhost:7077".
    --log-conf              : Enables logging of the supplied SparkConf as INFO at start of the Spark Context.

Other options:

    -mip --master-ip     : The Spark Master ip/hostname.
    -mp  --master-port   : The Spark Master port.
    -ld  --local-dir     : The absolute path to a local directory that will be use for "scratch" space in Spark.
    -dh  --driver-host   : Hostname or ip address for the driver to listen on.
    -dp  --driver-port   : The port for the driver to listen on.
    -uip --ui-port       : The port for your application's dashboard, which shows memory and workload data.
    --parallelism        : The default number of tasks to use across the cluster for distributed shuffle operations.
    --locality-wait      : The number of milliseconds to wait to launch a data-local task before giving up.
    --schedule-fair      : Enables FAIR scheduling between jobs submitted to the same SparkContext.
    --max-failures       : The number of individual task failures before giving up on the job.
    --mesos-coarse       : Enables coarse grained execution in Apache Mesos, this will launch only one long-running
                           Spark task on each Mesos machine, and dynamically schedule its own “mini-tasks” within it.

e.g.

    spark-shell -m spark://localhost:7077 -dm 512m -em 2g -uip 4010

    or

    spark-shell -m local -ld /tmp -dh 127.0.0.1 -dp 4001 -uip 4010 --parallelism 10 --locality-wait 500 --schedule-fair --max-failures 100
```

[ticket: ?] :

Author      : bernardo.gomezpalacio@gmail.com
[SPARK-?] : JVM debug and jmx modes as well as change on default parallelism name

Enabled JVM Debug and JMX modes.

Option `--parallelism` is now `--def-parallelism` no reflect that it
actually sets the default parallelism.

```
    --def-parallelism    : The default number of tasks to use across the cluster for distributed shuffle operations.
    --java-home          : The path to the java home, else it will use JAVA_HOME.
    --jvm-debug          : The port that the JVM debugger will bind to. By default the debugger is
                           disabled.
    --jvm-jmx            : Enables JMX remote monitoring on the given port. Note JMX es enabled in unsecure mode an
                           should be used with caution.
```