cosmetic changes to TaskRuntime and ContextRuntime - before separating
Thread and Runnable in TaskRuntime
Provide ordered events to the Driver

This closes #882.

*Major changes*
  * `DispatchingEStage` now has a second constructor, which creates a new one that shares the thread pool and exception handler with the given one. That constructor is used in `EvaluatorMessageDispatcher`
  * Changed the order in `EvaluatorDispatcherThreads.dispatch()` to first send the event to services, then to the application
  * Changed the default on `EvaluatorDispatcherThreads`  to 1

*Minor code cleanups*
  * `DispatchingEStage` now uses the queueLength of the underlying `ThreadPoolStage`
  * Renamed `DispatchingEStage.dispatcher` to `DispatchingEStage.applicationDispatcher`
cosmetic fixes before merging into master
cosmetic fixes: remove redundant generic specializations in EvaluatorContext
Updated Evaluator Parameters

This PR is part of the ongoing work to move our named parameters from inner classes to top-level classes, which allows us to use the same parameters in the JVM and .NET implementation of REEF:

  * Moved all inner classes in `EvaluatorConfiguration`  to the package `com.microsoft.reef.runtime.common.evaluator.parameters`
  * Renamed `EvaluatorConfigurationModule` to `EvaluatorConfiguration` to bring it in line with the other uses of ConfigurationModules in REEF.
Merge pull request #884 from Microsoft-CISL/weimer_evaluator_parameters

Updated Evaluator Parameters
Merge remote-tracking branch 'origin/master' into shravan_groupcomm_interfaces