[dart2js] Reduce Lists in DeferredLoadTask
[dart2js] Reduce Lists in DeferredLoadTask

ImportSets do not need to store the list of members of the set as it
is available implicitly on the canonical construction path. All that
is required is a back-pointer to traverse the canonical path from the
end (i.e. ImportSet).

This reduces the memory required by DeferredLoadTask by O(N).

Change-Id: Id23ce91d4aa01a74cd0f9ff4246dc56b65db1bf9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/148184
Commit-Queue: Stephen Adams <60cb5b73b7e0cb7dcda53302da4fab6ecfc7fa8b@google.com>
Reviewed-by: Sigmund Cherem <beaea8fd7d2a56555046ba4f362c8a93e3938576@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