Additional support for internationalization

Refactor character and sequence rules into single classes that accept character data as input.
Added common character data in CharacterData and SequenceData classes.

I didn't want that designation to bubble out, but I did want it. Under the assumption we're only going to ship with EN characters, I don't feel strongly about it.