(maint) Log invalid modules

Give notice when a module on the modulepath is invalid, explaining why.
To do this cleanly, we stop trying to add "." and ".." as modules since
these are always invalid.
(maint) Avoid checking for strings in module_references

module_references contains Hashes so there is no need to look for
strings within it, especially when the next line does what this one was
supposed to do.
(maint) Verify module exception is logged

Verifies that if puppet fails to load a module, e.g. missing metadata,
that we log the exception:

     $ bundle exec puppet apply -e "include mymodule"
     Error: No dependencies module metadata provided for mymodule
     Error: Could not find class mymodule for ...
(maint) Refactor tests to use helper to create module directory

Refactor tests to use PuppetSpec::Modules.generate_files to create
the module directory. Note the order of arguments is reversed.
Merge branch 'pr/3261'

* pr/3261:
  (maint) Refactor tests to use helper to create module directory
  (maint) Verify module exception is logged
  (maint) Avoid checking for strings in module_references
  (maint) Log invalid modules