Adapted from https://github.com/swiftzer/semver/blob/master/src/main/java/net/swiftzer/semver/SemVer.kt
Compare two SemVer objects using major, minor, patch and pre-release version as specified in SemVer specification.
Build the version name string.