This fix a regression introduced in:
048a8a61 (VersionHelper now correctly strip snapshot info)
actually neither 048a8a61 nor the version before are correct becuase:
048a8a61 - strips all the extra `-snapshot` and `+build`
previous - doesn't handle the case `x.y-snapshot`
Now both are handled correctly and a test has been added to verify this.
To be completely semver compliant we should deny versions in the
format `x.y`, but this will break all legacy version that have been
published until now, so this changed should be postponed for the next
major release of the IDE.
Fix#5251
If a core has a post/pre install/uninstall script, it will be execute at the appropriate time IF:
1) source (package_*_index) is trusted (GPG signed)
2) or users have explicitly added line "contributions.trust.all=true" to their preferences.txt
Some minor refactor and clean up while I was at it