Switchin' it up a bit.

* Using a CharacterKey structure instead of Id/Name-calling.
Trying to add some sense into CharacterKey.

* Added an interface for... well... THINGS that have a CharacterKey reference to a... well... character. After I did that, I was able to create a general equality comparer for those... things.