feat(tooltips): Add tooltip directive

Closes #552

Hat tip to @glynnis for doing the actual hard work on this one
Needs 4 spaces vs. 2.