chore(translateDirective): rewrites translateDirective

this commit rewrites the translateDirective to improve general perfomance.

Improvements:

- it unwatches translation id's once translated and only watches again for the
  next translate cycle
- it only keeps concantly watching for translations with translate values

which means when using 200 translations and they do not change digest cycles will
not re-evaluate them, since it's not needed. translation id's will only be watched
when a translation change is happening, once it's done, translation id's are unwatched
again.