fix(tooltip): memory leak on show/hide

Create a new child scope and retain a reference to it so that it can
be destroyed when the tooltip DOM is removed.

Fixes #2709
Closes #2919