Refactored translator and formatting to allow live changes.

This refactoring enables the future live dictionary update feature. It will also enable changing the config live without restarting plover.

- Refactored translator to not retranslate already translated strokes on each stroke unless the translation changes. This is necessary for being able to modify the dictionary on the fly.
- Refactored formatter to be stateless. This makes live changes less complicated.
- Fixed new orthography package's handling of doubled final consonants for words with letter q as in equip -> equipped
- Added unit tests