Implementation of semver and semantic version ranges
