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
(#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.
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.
(#16157) Fail rather than warn

Previously, if the disks that the user specified were different from the disks that
the mirror/raid was created with, we printed a warning, and spurious chagned: messages
and continued. This is not correct, and is dangerous. This patch fails rather than
continue if the disks are different.
(Maint) split the long line

Split the long line so that it is easier to read
(#15959) Fix groupadd/useradd spec when run on non-linux systems

The groupadd and useradd spec will only work if groupadd / useradd are
the default provider for the group / user type.

Explicitly set the provider in the spec tests so they can e.g. also run
on MacOSX.
(Maint) Fix syntax and semantic erros in test

Strangley enough, this test only started failing once it had been
cherry-picked from master onto 2.7.x and then merged up. There was a
missing comma, an extra comma, some incorrect argument passing, and a
missing PTY, which caused the command to always try to read from stdin.
Merge pull request #821 from daniel-pittman/bug/2.7.x/3984-better-handling-of-selinux-warnings

Bug/2.7.x/3984 better handling of selinux warnings
Merge pull request #1078 from vrthra/tickets/3.x/16157_fix_zpool

(#16157) fix zpool subcommands
Merge pull request #1052 from stschulte/ticket/2.7.x/15959_group_systemparam

#15959: groupadd system parameter is not supported on solaris
Merge remote-tracking branch 'origin/2.7.x' into 3.x
Merge remote-tracking branch 'origin/3.x'