MusicXML: Cleanup of span start/end and direction, coding style
Follow Han-Wen's tips:
-) Split the type of spanners into direction (start/stop) and type
(crescendo/decrescendo, up/down octave-shifts, ...)
-) Get rid of some ifs and use dicts instead
-) Get rid of unnecessary empty cases in dicts
-) Treat hairpins like all other spanners
-) Invert logic of quoting of lyrics and header fields to always quote unless
the text consists entirely of letters.
-) Implement all durations from MusicXML
-) If an ouput filename is given, the include needs to use only the basename
of the file, not the whole path
-) Change logic of adding .xml to the input file: First try the supplied
filename, then with .xml appended and only then with xml (no dot) appended.
-) Use progress (..) for the error message when input file does not exist.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>