Issue 3832: react sanely to ill-formed version strings
Mostly, this cleans up Lilypond_version
We no longer convert to int because it is weird, but we still want
version comparisons. Conversion to bool for checking validity seems
nice in addition.
And bombing out because of invalid data to String_convert::dec2int
seemed definitely non-nice. This version requires specifying at
least major and minor version number explicitly separated by dots.
It accepts a trailing dot, too. A trailing extra_patch_string after
major.minor.patchlevel. is also accepted but not interpreted.