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>
Only load auth.conf once

This adds a small singleton class to ensure that auth.conf is only loaded once
per filetimeout interval.
(#15752) Remove ca_days

Remove `ca_days` as it has been deprecated and should now be removed
for 3.0. `ca_ttl` should be used in it's place.
(#15750) Remove setting `cacrl` to false

Remove support for setting cacrl to false. Puppet will now just
ignore the CRL.
(#15758) Remove fact downcasing

Remove `downcasefact` and `downcase_if_necessary` as downcasing
of facts is no longer supported.
(#15765) Don't allow setting recursion depth with `recurse`

Remove the ability to set the recusion depth by setting the
`recurse` parameter. The `recurselimit ` parameter should now be
used instead.
(#15766) Remove 'path' as a valid parameter for the mount point

The `path` parameter has been deprecated (and now removed) for the
mount point. `name` should now be used instead.
(#15760) Require $ in prototype

Update grammar so that a '$' is required for prototypes.
(#15765) Raise error for invalid values for recurse parameter

Since the recursion depth can no longer be set with the `recurse`
parameter (and should instead be set with the `recurselimit`
parameter), do not allow integers as valid values for the `recurse`
parameter. In addition, raise an error if the parameter is set to
an integer value.
(#15751) Remove `--apply` option

Remove the `--apply catalog` option as `puppet --apply` has been
deprecated. `puppet apply --catalog` should be used instead.
(#15753) Remove `reportserver` setting

Remove `reportserver` setting as it has been deprecated.
`report_server` should be used instead.