(#21653) Skip modules with no manifest directory when loading resource types

The resource_type face tries to parse all manifests from modules, but was
failing if a module didn't have a manifest directory. This is not an error
condition so we just skip those modules.
(maint) Refactor type_loader, mostly specs

This cleans up the specs for type_loader a lot and slightly refactors a few
methods in type_loader.
Merge pull request #1752 from pcarlisle/ticket/21653-resource-type-cant-find-file

(#21653) Skip modules with no manifest directory when loading resource t...
Merge branch 'stable'

* stable:
  (maint) Refactor type_loader, mostly specs
  (#21653) Skip modules with no manifest directory when loading resource types