Add doc that listeners probably want a single-threaded ExecutionContext
Add TestExecution integration test for execution engine
Merge pull request #111 from sbt/wip/havocp-execution-test

add TestExecution testing execution engine
Enables cancelling of tasks.

* Move TaskIdRecorder into its own file.
* Create TaskCancellationRegistry for server to register tasks and
  cancellation "notifications".
* Shim TaskCancellation hooks into the sbt build.
* Create cancellation request/response in the API
* Wire cancellation request/response into SbtClient.
* Add hooks to be able to cancel tasks *in* the ServerEngine queue
* Create unit tests for all of the above.
Fixing integration test to reflect current status of TaskQueue.