Refactored treatment of closure variables in dart2js CPS.

Closure variables are now represented by a ClosureVariable object.
Previously they were identified by a LocalElement.

Parameters to a FunctionDefinition are now a mix of Parameter and
ClosureVariable. FunctionDefinitions also have a list of all the closure
variables they declare.

This change is a step toward supporting field initializers that modify or
capture function parameters.

BUG=
R=johnniwinther@google.com, sigurdm@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42164 260f80e4-7a28-3924-810f-c04153c831b5
Update test.

Now that dart2js can send arbitrary objects, this test went through a different route, where it encountered non-zero timers. These are not supported for jsshell.

I rewrote the test not to use a timer, but wait for a reply from the spawned isolate instead.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42165 260f80e4-7a28-3924-810f-c04153c831b5