[REEF-1700] Refactor HelloREEF example on YARN

Update the code to the latest API and remove all historical crumbs

JIRA: [REEF-1700](https://issues.apache.org/jira/browse/REEF-1700)

Closes #1216
diff --git a/lang/java/reef-examples/src/main/java/org/apache/reef/examples/hello/HelloREEFYarn.java b/lang/java/reef-examples/src/main/java/org/apache/reef/examples/hello/HelloREEFYarn.java
index 3817e4a..b4fc82e 100644
--- a/lang/java/reef-examples/src/main/java/org/apache/reef/examples/hello/HelloREEFYarn.java
+++ b/lang/java/reef-examples/src/main/java/org/apache/reef/examples/hello/HelloREEFYarn.java
@@ -23,8 +23,8 @@
 import org.apache.reef.client.LauncherStatus;
 import org.apache.reef.runtime.yarn.client.YarnClientConfiguration;
 import org.apache.reef.tang.Configuration;
-import org.apache.reef.tang.exceptions.BindException;
 import org.apache.reef.tang.exceptions.InjectionException;
+import org.apache.reef.util.EnvironmentUtils;
 
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -43,40 +43,24 @@
    */
   private static final int JOB_TIMEOUT = 100000; // 100 sec.
 
-  /**
-   * @return the configuration of the runtime
-   */
-  private static Configuration getRuntimeConfiguration() {
-    return YarnClientConfiguration.CONF.build();
-  }
+  /** The configuration of the runtime. */
+  private static final Configuration RUNTIME_CONF = YarnClientConfiguration.CONF.build();
 
-  /**
-   * @return the configuration of the HelloREEF driver.
-   */
-  private static Configuration getDriverConfiguration() {
-    return DriverConfiguration.CONF
-        .set(DriverConfiguration.GLOBAL_LIBRARIES,
-            HelloREEFYarn.class.getProtectionDomain().getCodeSource().getLocation().getFile())
-        .set(DriverConfiguration.DRIVER_IDENTIFIER, "HelloREEF")
-        .set(DriverConfiguration.ON_DRIVER_STARTED, HelloDriver.StartHandler.class)
-        .set(DriverConfiguration.ON_EVALUATOR_ALLOCATED, HelloDriver.EvaluatorAllocatedHandler.class)
-        .build();
-  }
+  /** The configuration of the HelloREEF driver. */
+  private static final Configuration DRIVER_CONF = DriverConfiguration.CONF
+      .set(DriverConfiguration.DRIVER_IDENTIFIER, "HelloREEF")
+      .set(DriverConfiguration.GLOBAL_LIBRARIES, EnvironmentUtils.getClassLocation(HelloREEFYarn.class))
+      .set(DriverConfiguration.ON_DRIVER_STARTED, HelloDriver.StartHandler.class)
+      .set(DriverConfiguration.ON_EVALUATOR_ALLOCATED, HelloDriver.EvaluatorAllocatedHandler.class)
+      .build();
 
   /**
    * Start Hello REEF job.
-   *
-   * @param args command line parameters.
-   * @throws BindException      configuration error.
+   * @param args command line parameters. Not used.
    * @throws InjectionException configuration error.
    */
-  public static void main(final String[] args) throws BindException, InjectionException {
-    final Configuration runtimeConf = getRuntimeConfiguration();
-    final Configuration driverConf = getDriverConfiguration();
-
-    final LauncherStatus status = DriverLauncher
-        .getLauncher(runtimeConf)
-        .run(driverConf, JOB_TIMEOUT);
+  public static void main(final String[] args) throws InjectionException {
+    final LauncherStatus status = DriverLauncher.getLauncher(RUNTIME_CONF).run(DRIVER_CONF, JOB_TIMEOUT);
     LOG.log(Level.INFO, "REEF job completed: {0}", status);
   }