Refactor case handling and him/her swapping

Sorry for the giant diff, but it all sort of happened in one go :).

Things that this eliminates the need for:

+ the giant searchFor regex
+ the differently-cased copies of the map (only lowercase is now needed,
with the matchCase helper)
+ the keyboard-mashing replacement strings (each instance is handled
separately instead).

This is awesome, btw. :)