angular directive changes, still missing #2605

tabs to spaces, fix white space, separate link and compile interfaces to be casteable
same for these arguments. Don't mark these as optional