Add support for the citext data type

The citext module provides a case-insensitive character string type, citext.
Essentially, it internally calls lower when comparing values.
Otherwise, it behaves almost exactly like text.