Make TaskRuntime runnable instead of inheriting from Thread; other
cosmetic fixes
Merge branch 'master' into sergiym_task_runtime_thread
Merge branch 'master' of github.com:Microsoft-CISL/REEF into sergiym_task_runtime_thread
Introduction of TaskRepresenter

This closes #885

This PR is part of the longer term goal of rewriting the Driver code into smaller units. It introduces a new class `TaskRepresenter` which represents a running Task on the Driver. It is is responsible for taking action on Task status messages sent by an evaluator. It is in that capacity that #885 is addressed by ignoring repeated INIT messages from Tasks.

Also, this adds `TaskCountingTest`, which checks that we never hand a second `RunningTask` event to the user. As this test needs to run for a long time to trigger bad behavior, it is not part of the `AllTests` suite. Instead, I added a new test suite called `ProbabilisticTests` where we can collect those tests.
better logging when submitting a driver job to YARN; add common Hadoop
environment variables to classpath; other minor fixes
cosmetic fixes
Merge branch 'weimer_885'
Merge pull request #888 from Microsoft-CISL/sergiym_log_launch

better logging when submitting a driver job to YARN
Merge branch 'master' into sergiym_task_runtime_thread
move Thread object from TaskRuntime to ContextRuntime
bug: do not use task state in teh ID
Merge pull request #889 from Microsoft-CISL/sergiym_task_runtime_thread

Make TaskRuntime implement Runnable interface; move Thread to ContextRuntime
Merge remote-tracking branch 'origin/master' into shravan_groupcomm_interfaces