(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.
Okay, @laurenrother very actively does not want to mention the Modulefile unless absolutely necessary. A proposed solution is to have a DuplicateDependencyError thrown here and rescued during the reading of the appropriate file in module_tool/applications/application.rb (lines 47-68). That way we can tell them if they have overspecified the dependency in metadata.json and should fix it there, or if they have done something in Modulefile and that should be removed.