add mixin support

fixes https://github.com/dart-lang/custom-element-apigen/issues/15
it probably doesn't matter that much, but now that you are already using a string buffer, we could make this part a bit cheaper if we remove the `map` and `join` operations. We could also include the directives here instead of creating another string further below.

For example:
```dart
  var code = new StringBuffer();
  code.write(generateDirectives(...));
  for (var e in summary.elements) {
    code.write(generateClass(...));
    code.write('\n\n');
  }
  ...
```