configure semver to enforce semantic versioning

This factors out the semver config in the root pom and makes it enforce semantic versioning instead of strict backward compatibility.