Upgrade to scallop 0.9.4

- The upgrade fixes a bug where scallop chops off the end of long option
  descriptions
- The newer version of scallop also requires failure messages, so some
  invalid uses of --schema and --validate should now give slightly more
  helpful errors

DFDL-909
diff --git a/build.sbt b/build.sbt
index a8de5aa..da05d0a 100644
--- a/build.sbt
+++ b/build.sbt
@@ -26,7 +26,7 @@
   "xerces" % "xercesImpl" % "2.10.0",
   "xml-resolver" % "xml-resolver" % "1.2",
   "jline" % "jline" % "2.9",
-  "org.rogach" %% "scallop" % "0.9.2",
+  "org.rogach" %% "scallop" % "0.9.4",
   "net.sourceforge.expectj" % "expectj" % "2.0.7"
 )
 
diff --git a/daffodil-cli/src/main/scala/edu/illinois/ncsa/daffodil/Main.scala b/daffodil-cli/src/main/scala/edu/illinois/ncsa/daffodil/Main.scala
index 2f3471b..a218f17 100644
--- a/daffodil-cli/src/main/scala/edu/illinois/ncsa/daffodil/Main.scala
+++ b/daffodil-cli/src/main/scala/edu/illinois/ncsa/daffodil/Main.scala
@@ -126,7 +126,7 @@
         if (l.isEmpty) Right(Some(Nil))
         else Right(Some(l))
       } catch {
-        case _: Throwable => Left(Unit)
+        case _: Throwable => Left("too many arguments for flag option")
       }
     }
     val manifest = m
@@ -163,7 +163,7 @@
     // parse returns Left with error message, if there was an error while parsing
     // if no option was found, it returns Right(None)
     // and if option was found, it returns Right(...)
-    def parse(s: List[(String, List[String])]): Either[Unit, Option[Option[A]]] = {
+    def parse(s: List[(String, List[String])]): Either[String, Option[Option[A]]] = {
       s match {
         case Nil => Right(None) // --validate flag was not present
         case (_, Nil) :: Nil => Right(Some(None)) // --validate flag was present but 'mode' wasn't
@@ -176,7 +176,7 @@
             }
           }
         }
-        case _ => Left(Unit) // Error because we expect there to be at most one --validate flag
+        case _ => Left("you should provide no more than one argument for this option") // Error because we expect there to be at most one --validate flag
       }
     }
     val manifest = m
diff --git a/eclipse-projects/cli/.classpath b/eclipse-projects/cli/.classpath
index c17f9fb..728c75a 100644
--- a/eclipse-projects/cli/.classpath
+++ b/eclipse-projects/cli/.classpath
@@ -35,9 +35,9 @@
 			<attribute name="javadoc_location" value="jar:platform:/resource/daffodil-cli/lib_managed/docs/jline/jline/jline-2.9-javadoc.jar!/"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="lib" path="lib_managed/jars/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.2.jar" sourcepath="lib_managed/srcs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.2-sources.jar">
+	<classpathentry kind="lib" path="lib_managed/jars/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.4.jar" sourcepath="lib_managed/srcs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.4-sources.jar">
 		<attributes>
-			<attribute name="javadoc_location" value="jar:platform:/resource/daffodil-cli/lib_managed/docs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.2-javadoc.jar!/"/>
+			<attribute name="javadoc_location" value="jar:platform:/resource/daffodil-cli/lib_managed/docs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.4-javadoc.jar!/"/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/eclipse/classes"/>
diff --git a/eclipse-projects/core/.classpath b/eclipse-projects/core/.classpath
index 962a835..0c6921b 100644
--- a/eclipse-projects/core/.classpath
+++ b/eclipse-projects/core/.classpath
@@ -32,9 +32,9 @@
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="lib" path="lib_managed/jars/xml-resolver/xml-resolver/xml-resolver-1.2.jar" sourcepath="lib_managed/srcs/xml-resolver/xml-resolver/xml-resolver-1.2-sources.jar"/>
-	<classpathentry kind="lib" path="lib_managed/jars/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.2.jar" sourcepath="lib_managed/srcs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.2-sources.jar">
+	<classpathentry kind="lib" path="lib_managed/jars/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.4.jar" sourcepath="lib_managed/srcs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.4-sources.jar">
 		<attributes>
-			<attribute name="javadoc_location" value="jar:file:lib_managed/docs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.2-javadoc.jar!/"/>
+			<attribute name="javadoc_location" value="jar:file:lib_managed/docs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.4-javadoc.jar!/"/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="lib" path="lib_managed/jars/org.hamcrest/hamcrest-core/hamcrest-core-1.3.jar" sourcepath="lib_managed/srcs/org.hamcrest/hamcrest-core/hamcrest-core-1.3-sources.jar">
diff --git a/eclipse-projects/runtime1/.classpath b/eclipse-projects/runtime1/.classpath
index 2319830..363b24b 100644
--- a/eclipse-projects/runtime1/.classpath
+++ b/eclipse-projects/runtime1/.classpath
@@ -32,9 +32,9 @@
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="lib" path="lib_managed/jars/xml-resolver/xml-resolver/xml-resolver-1.2.jar" sourcepath="lib_managed/srcs/xml-resolver/xml-resolver/xml-resolver-1.2-sources.jar"/>
-	<classpathentry kind="lib" path="lib_managed/jars/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.2.jar" sourcepath="lib_managed/srcs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.2-sources.jar">
+	<classpathentry kind="lib" path="lib_managed/jars/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.4.jar" sourcepath="lib_managed/srcs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.4-sources.jar">
 		<attributes>
-			<attribute name="javadoc_location" value="jar:file:lib_managed/docs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.2-javadoc.jar!/"/>
+			<attribute name="javadoc_location" value="jar:file:lib_managed/docs/org.rogach/scallop_2.9.2/scallop_2.9.2-0.9.4-javadoc.jar!/"/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="lib" path="lib_managed/jars/org.hamcrest/hamcrest-core/hamcrest-core-1.3.jar" sourcepath="lib_managed/srcs/org.hamcrest/hamcrest-core/hamcrest-core-1.3-sources.jar">