Merge pull request #980 from hkenney/ticket/3.x/15514_distinguishing_which_solaris_support

(#15514) Add compatibility with change to operatingsystem fact
Merge branch '3.x'

* 3.x:
  (#15514) Add compatibility with change to operatingsystem fact
Merge pull request #977 from vrthra/ticket/3.x/15644_fix_parse_line

(#15644) make sure parse_line is in scope
one half the contributions
Merge pull request #986 from mblair/master

Readme fix.
(Maint) Remove reference to Patchwork

The patchwork system hasn't been used for a while and doesn't appear to
be available anymore. This removes the reference to it.
Merge pull request #989 from zaphod42/maint/2.7.x/remove_patchwork_reference

(Maint) Remove reference to Patchwork
Merge remote-tracking branch 'upstream/2.7.x' into 3.x

* upstream/2.7.x:
  (Maint) Remove reference to Patchwork
Merge remote-tracking branch 'upstream/3.x'

* upstream/3.x:
  (Maint) Remove reference to Patchwork
  (#15644) make sure parse_line is in scope
Merge pull request #965 from kbarber/ticket/3.x/15666-return_downstream_comms_error

(#15666) Include downstream error when raising CommunicationsError exception
Remove Network::Authorization code which was only used for XMLRPC

Paired-with: Jeff McCune <jeff@puppetlabs.com>
Remove deprecated method of accessing files in modules

It was possible to refer to a file in a module without including the
'/module/' path component. This has been deprecated for at least one major
release.

Paired-with: Jeff McCune <jeff@puppetlabs.com>
Remove code for XMLRPC namespaces

XMLRPC is no longer used and this was dead code.

Paired-with: Jeff McCune <jeff@puppetlabs.com>
Merge RestAuthConfig into AuthConfig

There is no longer a meaningful distinction between REST authorization and
XMLRPC authorization.  AuthConfig provided a base class for both XMLRPC and
REST.  This is a problem because it makes the code difficult to understand in
a world where XMLRPC does not exist.  This patch fixes the problem by merging
the behavior of the RestAuthConfig class into the AuthConfig class.  The
AuthConfig class is now solely responsible for REST authorization.

Paired-with: Jeff McCune <jeff@puppetlabs.com>
Rename {rest_,}authorization.rb

Paired-with: Jeff McCune <jeff@puppetlabs.com>
Add allow_ip and deny_ip keywords to auth.conf

This commit splits IP based authorization into its own keywords. The allow and
deny keywords no longer operate on IP addresses. The new keywords function
like allow and deny but operate exclusively on IPv4 and IPv6 addresses.
Back references are currently unsupported for allow_ip and deny_ip.

Without this patch there is a security related issue where Puppet could not
distinguish between a certificate name that contains an IP address (cert auth)
and an ip address itself being used to authenticate (ip based auth).  This
patch fixes the problem by separating these out as described above.

Paired-with: Jeff McCune <jeff@puppetlabs.com>
Rename rest_authconfig_spec to authconfig_spec

Paired-with: Jeff McCune <jeff@puppetlabs.com>
Merge the old RestAuthConfig specs into the specs for AuthConfig

Since the underlying classes have been merged it doesn't make sense to have
separate spec files.

Paired-with: Jeff McCune <jeff@puppetlabs.com>
Refactor AuthConfig parsing into AuthConfigParser

This pulls parsing and file management out of the AuthConfig class. It
introduces the AuthConfigParser class which is responsible for parsing and
returning a new AuthConfig instance. Reloading the AuthConfig from a changed
auth.conf is pulled out into Puppet::Network::Authorization, which already had
partial responsibility for this.

Paired-with: Jeff McCune <jeff@puppetlabs.com>
Remove proxy methods going from Rights to Right

These methods were unnecessary, as it's easy to get the specific Right object
and call a method on it.

Paired-with: Jeff McCune <jeff@puppetlabs.com>