fix #40686: handling of voices of explode/implode

This improves handlign of multiple voices in explode/impode in a few ways:

1) fixes crash if selecting single staff with multiple voices in explode
2) fixes another crash that could occur due to modifying selection while we work on it
3) change implode behavior so that if only a single staff is selected - which used to do nothing - we now treat it as a command to implode the vocies within the staff