We should add support for passing cancellationTokens to async calls.
For example:
public async Task<IDstv> ParseAsync(TextReader reader)
Should become
public async Task<IDstv> ParseAsync(TextReader reader, CancellationToken cancellationToken = default).
This allows our consumers to cancel the workload.