Evaluator refactoring continues

Moved several aspects of the EvaluatorManager into their own classes:

  * Added EvaluatorControlHandler that relays evaluator control messages to the actually running Evaluator.
  * Added ContextControlHandler that does the same for context control messages.
  * Added EvaluatorStateManager to manage the state of an Evaluator as observed by the Driver

  This allowed EvaluatorContext to no longer require an EvaluatorManager instance.

  Also, this PR renames all handle methods in EvaluatorManager to more expresive names.