FLOE-226: Code improvement: 1. use model to track the open state of the tooltip; 2. optimize the find opener function in tooltip.js; 3. use model listeners for interaction btw the dialog and the tooltip; 4. add and modify comments.