(#8193) Support new keytypes for ssh_authorized_key

Recent versions of openssh (at least openssh 5.8) support the following
keytypes in in the authorized_keys file: ecdsa-sha2-nistp256,
ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-dss or ssh-rsa.

Add support for ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 and
ecdsa-sha2-nistp521.
(#8193) Support new keytypes for sshkey

Recent versions of openssh (at least openssh 5.8) support the following
keytypes in in the authorized_keys file: ecdsa-sha2-nistp256,
ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-dss or ssh-rsa.

Add support for ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 and
ecdsa-sha2-nistp521.
(#8193) Add unit tests for new ssh keytypes

Add unit tests to prove that the ssh_authorized_key provider can parse
all different keytypes. This currently shows that the provider lacks
support for ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, and
ecdsa-sha2-nistp521 keys.
(#8193) Add support for new ssh keytypes in authorized_key provider

The provider now correctly detects lines that describe an
ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 or ecdsa-sha2-nistp521 key.
(#12339) Adding basic search output formatting.

This aims to ensure that the most relevant data is always available in your
search results.  The module name and author are always available, the most
relevant keywords are presented, and as much of the short description as
possible is shown.
Sleep for 5 seconds after enabling the service, but
before calling sv start. This gives runsvdir time to
notice the new service symlink so that it won't return
an error on start which would otherwise cause puppet
to fail the start command and skip depenent resources.
Maint: Configuration settings shouldn't be referred to as "parameters"

This description-string-only commit changes the remaining references to
"configuration parameters," opting instead for the less ambiguous
"configuration settings" (or just "settings").
Maint: Update external_nodes setting description for changes from 2.6.5

The classes key of an ENC's output can contain a hash instead of an array, as
of Puppet 2.6.5. This commit updates the description of the external_nodes
setting accordingly.
(#11535) Platform agnosticism: Desc strings should refer to path separator instead of ':'

We were interpolating the File::PATH_SEPARATOR character in the desc string to
display the actual character being used on the platform on which it is
printed. This is marginally useful when running with --genconfig, but since
the config reference properly lives online, it should be platform-agnostic for
the benefit of Windows users.
(#11535) Call out differing config defaults on Windows

The default values of several configuration settings (diff, color, daemonize)
are different on Windows, but these differences did not appear in the online
configuration reference, as it is generated on a POSIX system. This commit
adds notes on these differing defaults to the description strings of the
affected settings, to ensure that the configuration reference remains
accurate.
(#12339) Improving documentation around Puppet::Util::Terminal.width.
(#12405) Remove obsolete storeconfig purging code.

Now that `puppet node clean` can remove storeconfig data for a system, we can
eliminate this external bit of code.  There is nothing that this does that the
better integrated tool didn't already do.

Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
(#12339) Clarifying source attribution.
(#12402) split log messages into individual lines before sending to syslog
Maint: Clarify ancient text about directories of symlinks

This commit replaces some unclear text about "recursive symlinks" that dated
from 2006.
Maint: Improve documentation of file type's source parameter

This commit tightens up the huge description of the source attribute, by:

* Explaining the recommended puppet URI format instead of the complete format
* Fixing a misleading example to use puppet URIs instead of local files
* Calling out the source/content/target trichotomy
* Inserting an example of how module layout maps to puppet URIs
Maint: General improvement of file type parameter doc strings

This commit clarifies several descriptions.
(#12412) Refactor puppet_resource('user') tests

Previously the Linux-specific logic for validating
puppet_resource('user') was contained within each 'user' test case. In
order to support executing resource acceptance tests on non-Linux
agents, I could have added if-then-else statements to each test case,
though that would lead to logic-sprawl.

This commit refactors the existing set of 'user' acceptance tests to
use native commands to validate that the tests work on any supported
agent platform. Specifically, that puppet_resource('user') can create,
modify, delete, query, and query_all, and that it doesn't try to
delete a non-existent user, or add a user that already exists.

The goal of these tests is to validate that puppet_resource "works"
with user resources, and can therefore be trusted to validate the
results of subsequence acceptance tests.

The commit also preserves tests that exercise unique behaviors,
e.g. should_create_with_gid.
(#12412) Refactor puppet_resource('group') tests

Previously, the Linux-specific logic for validating
puppet_resource('group') was contained within each 'group' test case. In
order to support executing resource acceptance tests on non-Linux
agents, I could have added if-then-else statements to each test case,
though that would lead to logic-sprawl.

This commit refactors the existing set of 'group' acceptance tests to
use native commands to validate that the tests work on any supported
agent platform. Specifically, that puppet_resource('group') can create,
delete, query, and query_all, and that it doesn't try to
delete a non-existent group, or add a group that already exists.

The goal of these tests is to validate that puppet_resource "works"
with group resources, and can therefore be trusted to validate the
results of subsequence acceptance tests.

The commit also preserves tests that exercise unique behaviors,
e.g. should_modify_gid.rb.
(#12412) Refactor puppet_resource('file')

Previously, the file acceptance tests were failing on Windows agents
due to using POSIX style paths.

This commit changes them to use the `agent.tmpfile` command to
generate a valid temp file for that agent.