Add a case-insensitive String.

We're going to be doing this a lot, and the tagged type is usually
going to be paired with the original value.  We might as well bundle
it as a type.

scalaz.CaseInsensitive falls short beacuse it uses the default locale.
This fails The Turkey Test unless we're more careful about the implicit
FoldCase than I expect we'll be.