angular directive changes, still missing #2605

tabs to spaces, fix white space, separate link and compile interfaces to be casteable
yup, but angular docs say that the best practice is to always return an object of pre/post... that's the confusion. 
https://docs.angularjs.org/api/ng/service/$compile#comprehensive-directive-api

> Best Practice: It's recommended to use the "directive definition object" form.