Preparation for enabling cancel in Async.legacy
Logic seems right but test is failing. Maybe need to enforce synchronisation.
Needed to make it a class to share and mutate the cancelled state
Cleanup cancel capability.
Avoid capturing the DispatchBlock in cancel block.
Test to confirm behaviour on cancel.
Clarify test error message.
Merge pull request #2 from josephlord/enableCancel2

Enable cancel()