(#22818) Skip metadata that cannot be parsed.

When adding metadata.json to modules I observed that incorrect JSON can
cause Puppet to die while parsing the invalid JSON.  Wrap this in a
rescue, raise a message, and return false if the parsing fails so that
Puppet continues as if the metadata doesn't exist.
Merge pull request #1987 from apenney/fix/improve-metadata-handling

(#22818) Skip metadata that cannot be parsed.