feat(Inheritance): Directives and components now support inheritance.

This patch supports the following scenario:

```
class Base {
  @NgAttr('foo')
  var foo;
}

@NgDirective(selector:'my-directive')
class MyDirective extends Base {
  @NgAttr('bar')
  var bar;
}
```

MyDirective will now have both properties, foo and bar.