Runtime refactoring

This PR cleans up some of the runtime implementation, mostly by renaming and moving things around. It is part of an ongoing series of runtime refactorings in REEF. Hence, it is not to be considered a final state, but an incremental step.

  * Replaced several anonymous inner classes with first order classes.
  * `DriverManager` no longer implements `EvaluatorRequestor`. `EvaluatorRequestorImpl` does.
  * Added more `package-info` documentation
  * Created a cleaner package structure for `c.m.r.runtime.common`
  * Added more, but not complete JavaDoc comments
* Deprecated getCatalog. It can instead be injected
Added defensive code to EvaluatorRequestorImpl and a test
Merge pull request #742 from Microsoft-CISL/weimer_runtime_refactorings

Runtime refactoring