pdUndo: when searching for the last relevant destructive action, ignore Fade and Repeat actions

Otherwise, we get weird recursive garbage like "Repeat Repeat" or "Fade
Fade".  In such instances, we want to go back further in the tree, to
find the initial destructive action used by the Fade and/or Repeat
event.
Edit menu: reorder, and prep for incoming Undo History

- Repeat is now grouped with Fade, as they are fundamentally quite
similar.

- Repeat now shows the action that will be repeated (e.g. "Repeat Color
balance").   Underlying logic was also reworked to match the new Fade
system.

- Fade and Repeat actions cannot be faded or repeated; instead, the
initial action that triggered them will be listed as the Fade or Repeat
target.

- Undo History placeholder now present beneath Undo and Redo commands.
Enabling/disabling and icon reordering is already in-place, though the
Undo History itself is not.

- Additional optimizations and fixes to icon and menu syncing with
program and image state.