fix(tooltip derivatives): check for presence of $element before removing listeners

Otherwise, if hide() is ever called after the parent `destroyTipElement()` function
has been called, JS errors are thrown because `$element` is now null and thus we
can’t access `.off` of null.
Custom 2.1.3 with fixes for unregistering dropdown click handler upon destroy