Rewrite to use html-based tooltips and screen coordinates

* Updated API.  You now need to specify events for `tip.hide` and `tip.show`.
* Uses `getScreenCTM` to properly position html-based tooltips on the screen
* Now supports HTML contents
* Styling is still left completely up to the user