fix(events): hook directives instead of replacing implementation

Before this change hint-events simply replaced the directive's implementation with its own and completely ignored the original implementation. This was pretty bad since we really shouldn't assume anything about the method we are hooking (for example, some directives do scope.$evalAsync now, which hint-event's implementation didn't do). In addition there was a bug in hint-event's implementation of the directive which totally broke elements with more than one event directive (the listener was always added to the first event, no matter which directive it was linking)