Notably subscript and superscript digits and some quote characters.
Add the Fn modifier that change the digits into F1 to F10.
KeyValue defines an ADT and some of its values, it now contains public final fields and no internal logic. KeyModifier handles modifiers and accents and creates new instances of KeyValue when needed. This operation is now properly cached.