ENH: ensure self-assignment and self-swapping are a no-op for string types
- simplifies their use when reordering lists etc. (word, fileName, keyType, wordRe) - "unfriend" IO operators for string types. They require no internal access - add compile/uncompile methods to keyType for symmetry with wordRe - when outputting keyType/wordRe, be more explicit about them using writeQuoted()