[nnbd/corelib] Restore null test in Stream.asyncExpand
[nnbd/corelib] Restore null test in Stream.asyncExpand

Stream.asyncExpand used to test result of 'convert' callback for null.
Moreover, this is a documented behavior: "If the call returns `null`,
no further action is taken for the elements." This ability was lost
when dart:async was migrated to NNBD as return type of 'convert'
becomes non-nullable. This change restores this behavior and changes
return type of 'convert' callback to be nullable.

Fixes the following tests with unforked SDK:
 co19_2/LibTest/async/Stream/Stream.fromFutures_A04_t01
 co19_2/LibTest/async/Stream/Stream.fromIterable_A03_t01
 co19_2/LibTest/async/Stream/Stream.periodic_A04_t01
 co19_2/LibTest/async/StreamController/StreamController.broadcast_A09_t01
 co19_2/LibTest/async/StreamController/StreamController.broadcast_A10_t01
 co19_2/LibTest/async/StreamController/stream_A02_t01
 co19_2/LibTest/async/StreamController/stream_A03_t01

Change-Id: I7c9236475dc27eb2ada5bdd57cfb27fc84f72592
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135200
Commit-Queue: Alexander Markov <239e774fd29abc1267878f57afe1a8a03e0ca887@google.com>
Reviewed-by: Lasse R.H. Nielsen <80295e4ef244a07779f93eaa95d582bad8e316a5@google.com>

dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk