angular directive changes, still missing #2605

tabs to spaces, fix white space, separate link and compile interfaces to be casteable
Here : https://github.com/borisyankov/DefinitelyTyped/issues/2605 you had : 
```ts
interface IDirectiveLink {
        (): IDirectiveLinkFunction;
        pre?: IDirectiveLinkFunction;
        post?: IDirectiveLinkFunction;
    }
```

I take it that `(): IDirectiveLinkFunction;` didn't test well?  

In this PR : Seems we are saying either you can have old safety for `link` OR you can have the new safety for `pre/post`. If this is the case I prefer the old safety since `link` is used much more than `pre/post`. Correct?