(#11276) Select tar command or minitar

Previously, the module tool relied on GNU versions of tar and gzip/gunzip
to build and install modules, which isn't portable on Windows in
particular.

This commit adds Gnu, Solaris, and Mini tar implementations for packing
and unpacking tar.gz format.

It modifies the module tool to select the appropriate implementation for
the platform it's currently running on.

Paired-with: Andy Parker <andy@puppetlabs.com>
(#11276) Enable module tool on Windows

This commit allows the module tool to run on windows and updates the spec
tests as they are no longer pending.
(#11276) Execute puppet module tool pack & unpack on agents

Previously, all of the module tool acceptance tests run on the master,
which is never windows.

This commit adds two acceptance tests to ensure the module tool can
generate, build, and install modules from the pmtacceptance forge, which
exercise the pack & unpack functionality.
(#11276) Fix require ordering issue on Windows

Make sure we require msvcrt/buffer is required before using it.