Patterns truncated, not removed, when song is shortened
Patterns truncated, not removed, when song is shortened

Previously, when the number of measures in a song was reduced, any
pattern that extended past the new number of measures was fully
removed from the song. However, this seemed like confusing and
undesirable behavior, especially since there is currently no undo
functionality to recover the removed patterns.

With this commit patterns will only be removed if they are fully
outside the new bounds of the song, and will otherwise be
truncated.

Note that only the playback length of a pattern is changed, not
the actual underlaying set of notes. This means that if the
pattern is later enlarged (e.g. because it's moved elsewhere in
the song where there is enough room to enlarge it) it will still
contain the extra notes that were seemingly truncated. At this
point I'm undecided whether this is good or bad behavior, so
keeping it as is for now.

jstrait/jssynth,jstrait/jssynth