fix #25055: accidentals on large chords

One thing I've learned it is that no algorithm is perfect for all situations, but this gets us where I think we need to be for large chords.  Accidentals an octave apart are always aligned in columns; accidentals with no match in another octave zig-zag to the left.  It's the same algorithm used by LilyPond, except they are also more clever about finding opportunities to combine columns.

Aside from any changes needed to support more fonts, or the code more font-indepedent, this should be it for basic chord layout.