(#15852) Allow rc in Puppet and Facter version strings

Previously putting rc in the Puppet version string would fail, mainly because
of a test that verified that the version only contained 3 dot separated
integers. This commit updates the Facter dependency to correctly use 2.0.0-rc
as the minimum version, as 2.0.0-rc is less than the previously required 2.0.0
as specified by SemVer. It also removes the test that verified the Puppet
version was a 'valid' 3 dotted integer version. That test is redundant, as the
test that follows verifies that the version string is valid SemVer.
Merge pull request #1036 from haus/ticket/3.x/15852_allow_rc_version_strings

(#15852) Allow rc in Puppet and Facter version strings
(#15852) Remove version check from puppet_spec.rb

This commit removes the version test from puppet, as it doesn't ensure any
functionality of puppet, but only that the version string matches certain
criteria.
Merge pull request #1044 from haus/ticket/3.x/15852_allow_rc_version_strings

(#15852) Remove version check from puppet_spec.rb
(#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 $ on variables in definitions

When listing parameters in a defined type or class definition, it was possible
to list a paramter without a $ prefix. This has been deprecated since 2006. It
is now required that every parameter begin with $.

Deprecated example:
    define vhost (port = 80, vhostdir) { ... }

Standard, now required version:
    define vhost ($port = 80, $vhostdir) { ... }
(#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.
(#15755) Remove `set_default_format` method

Remove the `set_default_format` since it had previously been
depreciated. `render_as` should be used instead.
(#15763) Remove `mkmodelmethods` method

Remove deprecated `mkmodelmethods` method for Provider objects.
`mk_resource_methods` should be used instead.
(#15762) Remove support for Facter versions below 1.5.5

Previously, Puppet would work around the fact that Facter versions
older than 1.5.5 were missing necessary functionality. Remove
this functionality to add a hard dependency on Facter version
1.5.5 or later.
(#15769) Remove `type` attribute for package

Remove the `type` parameter for packages as it has been deprecated,
`provider` should be used in it's place.
(#15771) Remove deprecations in Type objects

Remove several methods and parameters on Type objects that had
previously been deprecated.
(#15752) Remove references to ca_days

Since ca_days itself has been removed, also remove other places
in the code that reference it.
(#15762) Clean up `reload_facter` method

Since all supported version of facter now have Facter.loadfacts,
remove unnecessary conditional statements.