feat(tooltips): Add tooltip directive

Closes #552

Hat tip to @glynnis for doing the actual hard work on this one
Can you convert these to camelCase to keep consistent with the other variable names? I'm not against using hyphens, it's just inconsistent with what we currently have. If you want to switch over to hypens, switch it all over :)