Dart: Starting work on codegen

This change adds base classes for the client and provider of Mojo interfaces. It also changes the codec to use the RawMojoHandle wrapper class, and includes various other cleanup.

The change after this one will include the code generation script and templates.

BUG=
R=abarth@chromium.org

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