angular directive changes, still missing #2605

tabs to spaces, fix white space, separate link and compile interfaces to be casteable
@pocesar This doesn't add any value IMHO:

```ts
interface IScope1 {
       [index: string]: any;
       $apply(): any;
}
interface IScope2 {
       $apply(): any;
}

var scope1:IScope1;
scope1['foo'] = 123;

var scope2:IScope2;
scope2['foo'] = 123;
```