Fix for #3984 -- SELinux warns about changes it doesn't actually make

Volumes that don't suport SELinux should be considered in_sync so they don't
generate spurious change notice.

Patch from Darrell Fuhriman
Add stdin parsing to puppet parser validate
(#11727) Support STDIN for `puppet parser validate`

This adds an acceptance test for the STDIN validation feature of the `puppet
parser validate` action.

Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
Maint: Fix borked help/man output for node clean

This action's help was busted:

* You can't put bulleted lists in the description string of an action. It blows
  up the man page formatting.
* Description must begin with a description of the action, not a continuation of
  the summary; otherwise it makes the output of 'puppet help cmd action' useless.
* The description of how unexport works wasn't sufficiently clear.
(#15731) Full certificate metadata for pson

When attempting to get certificate metadata using the REST API, the API
returns a different set of metadata based on whether one requests yaml
or pson, neither of which are the full set of metadata.
This commit adds dns_alt_names/subjectAltNames to the metadata for pson.
(#15731) explicit fingerprint digest for pson

The pson metadata for a certificate (or certificate request) contains a
fingerprint which was created with the default digest algorithm. This
algorithm must change as we move to FIPS 140-2 compliance because MD5 is
explicitly denied.
This commit includes fingerprint metadata for 3 stronger hashing
algorithms and explicitly calls out that the fingerprint is for that
algorithm.
(#15920) Make forward-sexp ignore comments in puppet-mode.el

Enables parse-sexp-ignore-comments.

Previously forward-sexp was broken by comments with unterminated
strings. E.g. with the following manifest:
  foo {
    # won'
  }
forward-sexp on the opening brace would get:
  forward-sexp: Scan error: “Unbalanced parentheses”

The problem got introduced in commit
1c02749e8b54616043f728ed18ddec1dc4353a2d (Committed patch from #1160).
(#16157) Puppet should not print out spurious messages

Previously, the stderr stream was not captured resulting in sprurious messages in the console.
we direct the stderr to devnull so that the 'no such pool' error is not seen when looking for status.
(#16157) ensure that mirror and raidz are used as subcommands

Previously, the subcommands mirror and raidz was repeated for each element of the array.
This resulted in incorrect commands when multiple values were specified. This patch makes
sure that these are used in the subcommand position and only once.
(#16160) handle aclmode and shareiscsi removal.

Two properties aclmode and shareiscsi was removed from solaris 11 in two different builds.
of these aclmode may have been added back in some builds. Earlier, puppet used to fail to list
instances in solaris 11 due to these properties being absent. This patch ensures that failures
due to these properties are caught and a default value returned if we get an error.
maint: Rearrange tests in useradd unittests

Tests are now ordered by method, so if modifications have to be done
done in the provider code, it will be easier to track the according spec
tests that have to be changed.
maint: Reduce stubbing in useradd spec

It seams to be more reliable to work with real objects instead
(#15959) Do not support system user on Solaris and HP-UX

According to

http://docs.oracle.com/cd/E19963-01/html/821-1462/useradd-1m.html
http://nixdoc.net/man-pages/hp-ux/man1/useradd.1m.html

neither Solaris nor HP-UX support the -r switch to create system users
so the useradd provider should not claim to support system_users on
these platforms.
maint: Rearrange tests in groupadd unittests

Tests are now ordered by method, so if modifications have to be done
done in the provider code, it will be easier to track the according spec
tests that have to be changed.
maint: Reduce stubbing in groupadd spec

It seams to be more reliable to work with real objects instead
(#15959) Do not support system group on Solaris and HP-UX

According to

http://nixdoc.net/man-pages/hp-ux/man1/groupadd.1m.html
http://docs.oracle.com/cd/E19963-01/html/821-1462/groupadd-1m.html

neither Solaris nor HP-UX support the -r switch to create system groups
so the groupadd provider should not claim to support system_groups on
these platforms.
(#16139) Provide accessors for @puppet_version and @report_format in
reports

Prior to this commit, some of the data that was useful / necessary
to write a complete report processor was only accessible via
instance variables, while the vast majority of the data was available
through accessor methods.  This commit simply adds accessors for
puppet_version and report_format so that authors of report processors
aren't forced to interact with instance variables.  This should
make report processor implementation a bit more consistent, and
provides a little bit of abstraction from the underlying implementation
details.
(#15739) Bump report_version since #10064 change its format

With #10064, we changed the report format to include the
environment. However that patch did not bump the report_version
and it should have.  This retroactively bumps the version
without changing the format, which might be bad too, but it'd
be worse to change it again...
Merge branch 'backport-15739_report_format_version' into 2.7.x

* backport-15739_report_format_version:
  (#15739) Bump report_version since #10064 change its format
Move singleton require to puppet/util/storage.rb