Part #1 of cancel-task-hooks - Hooks EvaluateTask.
Part #1 of cancel-task-hooks - Hooks EvaluateTask.

* Create a new EvaluateTaskConfig which gives us a bit more freedom
  over changign config options to EvaluateTask in the future.
* Create adapted from old EvaluateTask to new EvaluateTask
* Add hooks into signals class to register/remote  a signal listener
  directly, rather than in an "arm" block.
* Create TaskEvaluationCancelHandler to control the strategy of
  who/whom can cancel (sbt-server vs. sbt-terminal).
* Create a null-object for the "can't cancel" scenario so the
  code path is exactly the same.

This commit does not wire settings into the build yet, nor does it
fix the config extractio methods.

sbt/sbt,mdedetrich/sbt,mdedetrich/sbt,xuwei-k/xsbt,xuwei-k/xsbt,sbt/sbt,Duhemm/util,sbt/sbt,mdedetrich/sbt,sbt/sbt,xuwei-k/xsbt,sbt/sbt,xuwei-k/xsbt,xuwei-k/xsbt,mdedetrich/sbt,sbt/sbt,mdedetrich/sbt,mdedetrich/sbt,sbt/sbt,mdedetrich/sbt