Maint: De-genericize Puppet Forge references in module face

The module tool supports a private Forge right now, but only if you have THE
Forge -- the APIs are not public yet, and are still subject to change as we
build out new features. This commit changes the help text so that it doesn't
imply private repos to be an immediately viable thing.
Merge pull request #765 from nfagerlund/maint/2.7.x/no-private-forges

Maint/2.7.x/no private forges
(#14424) Expand path of the target directory

This patch expands the path of the target installation directory and
will prevent the following errors:

    Error: undefined method `each' for nil:NilClass
Merge pull request #756 from kelseyhightower/ticket/2.7.x/14424_expand_path_of_target_directory

(#14424) Expand path of the target directory
Merge branch '2.7.x'
(Maint) Color console output when the win32console gem is installed

Originally, we were using a feature to detect whether the platform
supports ANSI color escape sequences. The feature used to invoke
`Puppet.features.rubygems?`, which had the side-effect of loading
rubygems, if it hadn't already been loaded.

However, the ansicolor feature could cause infinite recursive loops when
trying to log that it failed to load the ansicolor feature. So the code
for loading the win32console gem was moved into Puppet::Util::Colors in
commit 91a4a7d.

However, in doing so, rubygems was not being loaded when attempting to
`require 'win32console'`, causing Windows to always raise a LoadError,
even when the win32console gem was installed.

This commit adds an explicit call to require rubygems and now correctly
colors console output when the win32console gem is installed.
Set node_terminus in device application

This was set in the agent application so that an ENC can be properly used, but
not in device. I also refactored these settings slightly to use the new
app_defaults method.
Revert "Merge branch '2.7.x'"

This reverts commit 34ad902015afbd3f8d7597207a1cb4d5cd4cc011, reversing
changes made to 639f995c91289b3be9ca5347865247907c7dcb5c.
Fix User-Agent for ruby 1.8.5

The RUBY_PATCHLEVEL constant is not available on ruby 1.8.5. To fix this
the pathlevel section will default to nothing if the RUBY_PATCHLEVEL is not
available.
Use absolute_path in module install spec

This fixes the module install spec on windows
Merge pull request #777 from pcarlisle/maint/2.7.x/fix_module_install_specs

Use absolute_path in module install spec
(maint) Manually resolve broken merge of 2.7.x

This patch resolves a merge conflict with 2.7.x, mainly around some
changes in the PMT installer face options.
Merge pull request #771 from zaphod42/bug/master/14387-user-agent-for-module-tool

Fix User-Agent for ruby 1.8.5
Use ExternalFileError when a file name and line are needed

Several places were trying to set line or file attributes on instances of
Puppet::Error. This changes those to use exception classes that include
ExternalFileError.
Merge pull request #778 from kelseyhightower/master

(maint) Manually resolve broken merge of 2.7.x
Merge pull request #780 from pcarlisle/maint/master/use-externalfileerror

Use ExternalFileError when a file name and line are needed
Merge pull request #776 from joshcooper/maint/2.7.x/fix-broken-console-color

(Maint) Color console output when the win32console gem is installed
Merge branch '2.7.x'

* 2.7.x:
  Use absolute_path in module install spec
  (Maint) Color console output when the win32console gem is installed
Fix failing spec tests for module tool
Merge pull request #781 from cprice-puppet/cleanup/master/windows-module-tool-spec-failures

Fix failing spec tests for module tool