(#11802) Make Puppet::Module able to find module in specific path
For the module list command we want to be able to tell about all the
modules in multiple directories of an environment's modulepath.
Currently, if we have a module with the same name in two different
directories of the modulepath it's impossible to get information on it
since Puppet::Module.new takes a name and environment will always
assume the path for the module is in the first directory of the
environment's modulepath.
This change allows the module's path to be passed in so that you can
instantiate a Puppet::Module for any module location.