23525 transpose undo keysig

replacement for pull request 264 which I messed up with my faulty git configuration.

This addresses issues 23525, 21234 and 22913.

When transposing key signatures Score::transposeKeys() updates the keymap in transpose.cpp:417
(*km)[tick] = nKey;
This is not stored in the undo stack.

While undo resets the actual KeySigs, layout will later change them back to match the (old) keymap.
I added a call to setKey() in ChangeKeySig::flip() to make sure the keymap matches all key signature changes.