(#14544) Make puppet apply --write-catalog-summary produce resources and classes state files

MCollective requires a classes.txt and resources.txt to function.  The
agent application writes this by default but the apply application has
no way to write these files.

With the increased popularity of running puppet masterless opting
instead to only run puppet apply on every node this is becoming a
problem for mcollective users who wish to run this mode of puppet
configuration management

This commits adds a new flag to the apply application -
--write-catalog-summary - which enables the creation of these 2 files
leaving it off by default to avoid apply from stepping on the toes of an
agent unless the user specifically request this behavior
Merge branch 'ripienaar-feature/master/14544'

* ripienaar-feature/master/14544:
  (#14544) Make puppet apply --write-catalog-summary produce resources and classes state files

closes #1465