dart2js cps: Bugfixes in .push rewrites.
dart2js cps: Bugfixes in .push rewrites.

Two consecutive pushes would sometimes be merged in a way that one of
the arguments could fall out of scope.

List.addAll with a literal list as argument would sometimes be rewritten
to a push, even though the list could be modified before the use.

BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1286123005 .

dart-lang/sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dart-lang/sdk,dartino/dart-sdk,dart-lang/sdk,dart-lang/sdk,dart-archive/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dartino/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dartino/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dartino/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dartino/dart-sdk