(PE-4524) Add module dependency validation

Prior to this commit there wasn't much verification for module dependencies.
This commit adds verification the module dependencies have sane names and version
ranges. If verification fails, it will raise an argument exception.
This assigns a `Semantic::VersionRange` instance to the variable, which does stringify to an equivalent version range, but does potentially mean that the user's input is being automatically changed by us – which we probably want to avoid.

As validation, try this with a version_requirements of `>= 1.0.0 < 2.0.0`.