support setting Java system properties before Isabelle system init

Custom properties are required, for example, to set Cygwin path in Windows
wrappers for Publisher and ObservableValue
allow did select component customisation

Support manipulating the editor field and indicate better names
launch component to select Cygwin directory
Isabelle Windows launch that supports Cygwin path configuration
custom listeners instead of scala Publisher trait

scala.collection.mutable.Publisher trait does not seem to preserve order between listeners, since it uses a HashMap to store them. This can cause problems when the order is important. Using a custom publisher implementation instead
Merge branch 'cygwin-support'
do not use reproducible qualifiers for product builds