Improved the generation of FailedEvaluator

This closes #880:
  * Changed `EvaluatorRuntime` such that unexpected calls to the `RuntimeStopHandler` result in a `FailedEvaluator`
  * Added a test that proofs that it works

Also, I made unrelated updates to the code:
  * Renamed methods in `HeartBeatManager` from `onNext(...)` to more speaking names like `sendTaskStatus()`
minor cosmetic changes for better readability