Tremolo customizations lost on second save/reload
The new facility to set placement and stroke style for tremolo unfortunately doesn't survive save & reload - at least, not two of them. Steps to reproduce:
1) create score with two quarter notes
2) add tremolo between them
3) set to stroke to attached to stems
4) save / close / reload
5) change anything else in the score
6) save / close / reload
Result: the customization is lost. What is happening is that on the read at step 4, we are setting the stroke style, so it appears to have survived the save and reload, but the property flag never got set to UNSTYLED. So the customization is lost on the write at step 6, since STYLED properties are not written.
Same for the placement.
Normally, the fix would be to replace the explicit handling of these two tags in Tremolo::read() with a single call to readStyledProperty() - see for example how it's done in Hairpin::read() or Stem::read() or any of the other uses of readStyledProperty().
However, that actually doesn't work here. That's because when it comes time for readStyledProperty() to actually set the property it just read, it calls setProperty(), and Tremolo::setProperty() refuses to set the stroke style because it is checking customStrokeStyleApplicable() to see if it's worth the trouble, and it's deciding no it isn't, because the duration actually has not yet been set.
So either Tremolo::read() needs to handle the property flags itself (just setting them to UNSTYLED should be good), or if we do switch to using readStyledProperty(), somehow we need to make sure it can actually set the property. Like, by changing customStrokeStyleApplicable() to accept a duration of V_INVALID. No idea if that breaks anything else. Or just ripping that code out - does it really hurt for setProperty() to actually allow the property to be set even not not applicable? Not sure if there was a user-visible bug that that (recent) change fixed.