Setting MsDuration of a UniqueMidiChordDef sets BasicMidiChordDefs

The durations of UniqueMidiChordDefs are consistently equal to
the sums of the durations of the contained BasicMidiChordDefs.
A UniqueMidiChordDef's msDuration is no longer written to SVG
files, but is calculated from the BasicMidiChordDefs' msDurations
by the Assistant Performer.
All functions that change the msDuration of a
UniqueMidiChordDef do so by setting its MsDuration property,
which changes the durations (and possibly number) of the
contained BasicMidiChordDefs
Completed the Dispose() functions in Keys.cs and Keyboard.designer.cs

Ran code analysis on Moritz, and discovered that these functions
were incomplete. Some other classes also need to implement
IDisposable, but I've left those for later...
Used _krystals opened by Moritz rather than opening them again.

SongSixAlgorithm automatically contains an array of open
krystals, whose names have been set in SongSix.mkss using the
AssistantComposer's main panel. These krystals can simply be
retrieved from there, and don't need to be openend again.
Song Six update (related to pitch changes in Furies 1 and 2).

The pitches (defined in pallets defined in the file Song Six.mkss)
for Furies 1 and 2 have been transposed down by a few octaves.
To display these without lots of ledgerlines, the notation has
been transposed up (by 2 and 1 octaves respectively) with
respect to the new pitches.
Realized adding clef changes ad lib. in staves.

And reorganized the clefs in SongSix.
New functions:
VoiceDef.InsertClefChange(index, clefTypeString)
and
SvgScore.MoveRestClefChangesToEndsOfsystems()
For an example of how to use VoiceDef.InsertClefChange(...) see
SongSixAlgorithm.cs