Stringifies commands by name (stringify
interprets single strings as key ids.).
Stringifies lists of keys, shortcuts, or commands.
The type must be specified because we can't magically tell what type something is for string lists and/or empty lists.
Stringifies the property values of items when there is an error (e.g. "You cannot change prop x from a to b because of y." a and b here being the property values).
Stringifies single keys in string or Key from, as well as chords, chains, full shortcuts, and commands.
In the case of string key ids and Shortcuts, some additional information is required to be able to convert the keys and commands back into the full commands and consistently stringify them.