(#22474) Update forge/repository.rb to conditionally include zlib

Previously using the --no-zlib flag or using puppet on a ruby without zlib
support would result in a load error and stacktrace, because
lib/puppet/forge/repository.rb requires zlib and uses a constant defined by
Zlib. This commit updates repository.rb to only require zlib and use its
constant if the zlib feature is available and the --no-zlib flag was not passed
(zlib is enabled by default in defaults.rb).
With this commit running puppet on a ruby without zlib does not throw a
stacktrace or other error related to zlib.
Merge pull request #1886 from haus/ticket/stable/22474_conditionally_require_zlib

(#22474) Update forge/repository.rb to conditionally include zlib
(packaging) Update PUPPETVERSION for 3.3.0
Merge branch 'release/stable/3.3.0' into stable

* release/stable/3.3.0:
  (packaging) Update PUPPETVERSION for 3.3.0
(#22530) Support both YAML and PSON

The problem with the previous version of this code was that it only
allowed the report to support exactly what the user had selected. This
is alright (for the most part) for the agent, but is incorrect for the
master since the master needs to understand both formats at once. The
remedy this the default_format is now selected based on the
report_serialization_format setting whereas the supported_formats are
always both PSON and YAML.
Merge remote-tracking branch 'andy/issue/stable/22530-master-with-older-agent-sending-reports' into stable

* andy/issue/stable/22530-master-with-older-agent-sending-reports:
  (#22530) Support both YAML and PSON
Don't use subject in parsedfile spec
(#19994) Ensure that failed ParsedFile operations are marked flushed

Since ParsedFile maintains a global queue of records to be flushed and
attempts to flush all outstanding operations each time a resource is flushed,
any failed operations would be retried for each resource. This lead to
unrelated resources failing.