angular directive changes, still missing #2605

tabs to spaces, fix white space, separate link and compile interfaces to be casteable
that's the bad side of Javascript, you can have all, and Typescript won't allow you to have all heh. making it `(): IDirectivePrePost;` doesnt help either.