Have one real implementation of cancellation token in core.

The rest is adapting between core implementation, internal cross-version
interface, and toolingApi interface.

+review REVIEW-5088