angular directive changes, still missing #2605

tabs to spaces, fix white space, separate link and compile interfaces to be casteable
It should be just : 

```ts
   interface IDirectiveLinkFn {
        (
            scope: IScope,
            instanceElement: IAugmentedJQuery,
            instanceAttributes: IAttributes,
            controller: any,
            transclude: ITranscludeFunction
        ): void;
  }
```

Demo that it accommodates all: 
```ts
interface IDirectiveLinkFn {
        (
            scope: any,
            instanceElement: any,
            instanceAttributes: any,
            controller: any,
            transclude: any
        ): void;
  }
  
  var foo : IDirectiveLinkFn;
  
  foo = ()=>{};
  foo = (scope)=>{};
  // And so on 
```