(PUP-3012) Accept. tests - 3.7 PMT updates upgrade

This commit adds additional acceptance test coverage for updates
to the puppet module upgrade command. These tests validate the
following:

* detection of symlinks in installed module
* detection of latest version already installed
* allow upgrade when invalid semver in installed modules
(PUP-3012) Windows fixes for 3.7 PMT upgrade tests

This commit adds fixes to allow the invalid semvser upgrade tests
to run properly on Windows.
Modify PMT tests for directory environments

The beaker host['distmoduledir'] variable is meaningful if the
host is using directory environments (e.g 'production').

This commit updates the helper methods for validating that a module
is (or not) installed on the host by iterating over the modulepath
if a specific modulepath is not provided.

The calls to these helper methods have been updated for the change
in parameter ordering in the helper methods.
(PUP-3014) Accept. tests - 3.7 PMT updates generate

This commit adds additional acceptance test coverage for updates
to the puppet module generate command. These tests validate the
following:

* (PUP-2781) Generated requirements should use the version_requirement field
* (PUP-2691) Generate should succeed when skeletons use the 'description'
  metadata property.
* (PUP-2079) Generate should support erb skeleton templates"
(PUP-3014) Skip erb skeleton tests on Windows

This commit skips erb skeleton tests on Windows.

The module tool does not currently honor skeleton files for
privileged users. Running these tests as a non-privileged user
on Windows does not work because cygwin does not support 'su'.
(PUP-3011) Accept. tests - 3.7 PMT updates install

This commit adds additional acceptance test coverage for updates
to the puppet module install command. These tests validate the
following:

* (PUP-2078) Install with force should not reinstall dependencies
* (PUP-2912) Installing a module containing a symlink should
  succeed but warn about the symlink.
(PUP-3013) Accept. tests - 3.7 PMT updates build

This commit adds additional acceptance test coverage for updates
the puppet module build command. These tests validate the
following:

    * enforcement of metadata.json file
    * ignoring checksum data in metadata.json
    * detection of symlinks in module
    * detection of file changes created by build process
    * use of .pmtignore and .gitignore to suppress file inclusion
      during build
    * metadata.json field validation of name
    * metadata.json field validation of semantic version
    * metadata.json field validation of version range
      incompatibility when duplicate dependencies are found
Add test for default PMT interview answers

Add test for default interview answers
by feeding blank '' responses to the
interface.

The success criteria is the production
of a valid JSON metadata.json file. The
validation of the JSON string has been
added as a helper method to the
module_utils helper module
(PUP-2402) Add tests for PMT generate interview

The interview question for module version should accept a
semantic version number and reject any other type of input.

All other questions accept unrestricted string submissions.
(PUP-2701) Add PMT build metadata.json tests

Add acceptance tests to validate the deprecation of the `Modulefile`
and the usage of the `metadata.json` file when envoking the
`puppet module build` command.
(PUP-2402) PMT generate tests for github and readme

The PMT generate interview should change the default answers
for project_page and issues_url if a github.com URL has been
given for the source answer.

The PMT generate command should create a README.rb file based on
a defined template.
(PUP-2701) Correct typos in  PMT build tests

s/ng1nx/nginx/

The checksums are contained in the `checksums.json` file, so
all references should be `checksums` plural.
(PUP-2402) Fix tests for PMT generate interview large input

Fix string comparisons for tests using large input with
double quotations.
(PUP-2402) Unskip neg tests for PMT generate interview

Change criteria of negative tests in order to allow them to
execute.

The scope of the negative tests has been changed to only evaluating
that the proper error response is given when unsupported input is
given for a module version.

With this rescoping, these tests no longer need to be skipped.
(PUP-2402) Move requires to top of helper file

Move `require` statements to top of `module_utils.rb` helper file.
Skip large string PMT interview tests
Remove comparision operator from version string
Omit solaris 10 from agent module installs
Skip unicode interview tests on Windows until PE-5081 is resolved
Fix install-with_version.rb