Use sync forwarders for `switchLatest` (dart-lang/stream_transform#30)
Towards dart-lang/stream_transform#24
- Don't return a Future from `onCancel` when the values were already
done.
- Use `sync: true`
- Drop unnecessary `await new Future(() {})`s
- Set onPause, onResume, and onCancel inside onListen.