List of changes: - Makes ChangeDetector and ProtoChangeDetector interfaces - Assigns a unique id to every detector
Enable pregenerated (for Dart) and JIT (for Js) change detectors when possible. Previously we would always use `DynamicChangeDetector`s, but these cause megamorphic calls and are therefore much slower. Closes #502