(PUP-2901/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.
Would it be fine if we got wording from her stating "there should only be one dependency requirement for any given module, and that should be in metadata.json."?