Core animation

R= @jmesserly @sigmundch 
it probably doesn't matter here, but @sigmundch pointed out to me that Polymer.onReady.then should probably be run in the zone, so if ppl start from the example, they don't get confused about why observability doesn't work. Two patterns i've used:
```dart
main() => initPolymer().run(() {
  Polymer.onReady.then ...
});
```
and
```dart
main() => initPolymer(); // or export 'package:polymer/init.dart';
@initMethod init() {
  Polymer.onReady.then ...
}
```

seems like a common pattern, wonder if we can simplify it somehow.