(#19090) Fix user failure when group exists and gid is not specified

When a group matching the name of a user already exists on a system
and the user resource does not contain a gid parameter, the execution
of useradd fails.

Normally useradd creates a group with an identical name to the user
when -g is not provided on the command line.  In the case where the group
already exists -g must be explicitly passed to useradd.
Merge branch 'jjulien-bug#19090'

* jjulien-bug#19090:
  (#19090) Fix user failure when group exists and gid is not specified
(#19090) Fixup failing windows spec tests

Without this patch applied the spec examples are failing on windows.
The root cause of this problem is that the Etc module does not respond
to the `gid` method.

This patch addresses the problem by extending the rescue block to catch
NoMethodError exceptions in addition to the ArgumentError exceptions
that were already being caught.

References: [Build #634 (Mar 4, 2013 10:01:31
AM)](http://links.puppetlabs.com/win_19090_spec)
(Maint) Fix assertion about module tool output

Commit b48402229adcd11b9f1293725f74703670f346c5 changed the output of
the module tool so that it matched the options that is actually has. The
acceptance test, however, was not updated at the same time. This updates
the relevant tests to include the updated text.
Docs: Adding doc strings for hiera_array, hiera_hash