Improve command line handling of the execution app

The execution app parser wasn't handling non -D hadoop args that the GenericOptionsParser needs correctly. This special cases all the special ones for the GOP
can you flatten this out? I don't like two level matching:
```scala
args.foldLeft(Array[String](), Array[String](), Option.empty[String]) {
  case ((hadoopArgs, nonHadoop, Some(l), current) if dArgPattern.findFirstIn(current).isDefined =>
  // etc....
```