sbOnChange: handle $apply inside directive

This moves the complexity away from the caller.
sbOnChange: call event handler like a normal event handler

This means setting this to the target element and passing the event to
the handler.