fix(tooltip): correctly bind/unbind events

Refactored events binding/unbinding code into separate methods to make it easier to identify events used.
Fixed unbinding of keyboard events when binded to 'element' instead of 'tipElement'.
Changed auto-close related event to not use anonymous handlers, so we can correctly unbind from the events.