(#7285) Add spec for Augeas initialisation and file loading

Simple initialisaton tests with combinations of lens include paths, explicit
file/lens loading against a few example files.
(#13379) Add path of pluginsync'd lenses to Augeas load_path automatically

The path $libdir/augeas/lenses is added to the Augeas load_path initialisation
option automatically to support lenses being pluginsynced.  Lenses should be
added into the <module>/lib/augeas/lenses directory inside a module.

The load_path parameter has been expanded to support an array of paths as well
as a colon-separated list.
Update acceptance tests to use confine instead of skip_test loops

Now that the test harness supports confine :except, :platform = 'windows'
(and the like), update the tests to use that syntax.
Revert changes to symbolic_modes.rb -- this test should indeed be pending
(it should eventually work on Windows).
Remove EL-related test changes from this commit.

These changes will go to the 2.6.x branch instead.
Change one test to use the new confine syntax.
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.