Updates to job submission and launch

This PR mostly deals with an issue in `YarnConfigurationConstructor` where the configuration wouldn't be searched properly. However, it also contains the following updates:

  * JobJarMaker no longer tries to overwrite files that exist twice on the classpath. Instead, it will print a message into FINEST and ignore the second file with the same name.
  * LaunchClass now provides more elaborate error checking
  * Updated the classpath assembly to allow for a prefix to the classpath to be provided by the runtime. This is helpful to make sure that e.g. the local YARN configuration is always first in the classpath
  * Added new class `HadoopEnvironment` to provide constants for the names of the various Hadoop environment variables.