Disallow duplicates

This commit ensures that multiple modules matching the
same name cannot be simultaneously installed.

The last one specified will win. This allows Puppetfiles
to refer to other Puppetfiles via eval where you can always
trust that the later reffered to file will win.