Adding thread names to the EvaluatorMessageDispatcher

Closes #936. `EvaluatorMessageDispatcher` now names the threads spawned with the ID of the Evaluator events are dispatched for.
Add active thread logging

Closes #933

   * Add utility class `ThreadLogger` that can format and log the currently active Threads.
   * Used `ThreadLogger` in `Launcher` and `DefaultClientCloseHandler`

   Note that `ThreadLogger` is in a package in the `org.apache` namespace. I suggest we start using that namespace for new classes as we will have to move the whole codebase there eventually anyhow.
Merge pull request #943 from Microsoft-CISL/weimer_933

Add active thread logging
Merge pull request #942 from Microsoft-CISL/weimer_936

Adding thread names to the EvaluatorMessageDispatcher
ON_DRIVER_RESTARTED Event infrastructure

This adds a new event, `DriverConfiguration.ON_DRIVER_RESTARTED` to REEF that will be called in lieu of `ON_DRIVER_STARTED` when a (failed) Driver is restarted by the resource manager. This event is *not* called yet and this PR is part of a series of changes to add support for Driver restarts.
Merge pull request #944 from Microsoft-CISL/weimer_on_driver_restart

ON_DRIVER_RESTARTED Event infrastructure
Merge remote-tracking branch 'origin' into reef-bridge
driver uses 4g memory and restart handler