This patch starts down the process of cleaning up the dart:ui API. In this
approach, we use Dart code to specify the interface instead of IDL. The code in
this patch is far from complete. It's just a sketch to see how this sort of
approach might work.