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.

Why the naming mismatch between this field and the underlying character sequence (EN_QWERTY)?