Resolve comments from a0ef1b9b3ac20c74daade1203fcc2bcd08bb097b

* Combine the two ToolTip components
* Fix some bugs in ToolTip
* Create a common way for QML to access singleton objects