refactor(*): remove add/removeEventListenerFn wrappers
- in some tests these methods are 2x as expensive as the actual add/removeEventListener which they wrap
- in the largetable ngmodel this removes ~1%
perf($controller): cache the later constructor
perf(ngModel): initialize the model $name from $attrs instead of $interpolate per controller
refactor($compile): combining elementControllers and controllers
perf($compile): simplifying/refactoring controller loops/methods
refactor($compile): moving controller setup into its own method