support prerelease and build parts when comparing semver