Improvements to tie handling
Maestro currently has very poor tie handling, using a fixed-width sprite and no checks on what kinds of objects can be (un)tied. This change fixes a number of these issues:
- Ties can be now be placed over or under the note.
- Only notes in the current or following bar from the original note are candidates for being tied to.
- The tie sprite is scaled to match the gap between notes.
- Ties can no longer be attached to rests.
- Deleting the second note also deletes the tie.
In order to implement the first item, an unused bit (1) in the Note block has been used. In the file spec this bit was stipulated as being for note beams, which were never implemented in Maestro. If beaming ever does get added, it'll need more than a single bit per note to make work, and would be better calculated dynamically, so I thought it safe to put the bit to this use instead.
The tie scaling in the printed document is very rudimentary, though as printing looks awful across the board and needs an overhaul in a number of areas, I think it's as good as is necessary for now.