feat(tooltips): Add tooltip directive

Closes #552

Hat tip to @glynnis for doing the actual hard work on this one