(#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
(#22110) remove the catalog constructor set of @version

In the first pass of the catalog endpoint documentation,
I added a '@version = 0' to the catalog constructor, both
because it seemed (naively) good to initialize everything, and
because it allowed the first draft of the spec tests to pass.

Well, as it turns out, this has unintended consequences for
*non* host_config use of the catalog (e.g. settings); specifically,
it causes a confusing info message like:
    Info: Applying configuration version '0'
because the 'Applying' message is suppressed if version is nil.

Also, this is no longer needed for the committed spec tests, so
just removing it.
Merge pull request #1892 from kylog/issue/22110-remove-initialization-of-version

(#22110) remove the catalog constructor set of @version
(maint) print meaningful debug messages in execpipe
Merge branch 'pull-1882'
(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
Merge branch 'stable'

* stable:
  (packaging) Update PUPPETVERSION for 3.3.0
  (#22474) Update forge/repository.rb to conditionally include zlib