Intersection and union operations on tag names.
Tags are unique and case-sensitive.
Uniqueness validation for tag/taggable pairs.
All behaviour must be case insensitive. Failing spec.
Logic for normalising tag names. At this point, it's just downcasing.
Save tags with normalised names.
Full normalising behaviour, plus better handling of duplicates.