[15929] [17624] Handle malformed plists
Previously, if launchd encountered a plist that did NOT have a 'label' key, or
a malformed plist that plutil couldn't read, Puppet would throw a stacktrace or
log a nebulous error that looked like:
`Error: Could not run: No resource and no name in property hash in launchd
instance`
That was not ideal. This commit will catch the situation where a plist is
missing a 'label' key Puppet is skipping the plist. It will also catch the
case the where a plist is malformed and plutil cannot read it. With either
condition, the commit adds code that logs a Puppet.warning and skips the
malformed plist gracefully.