(PUP-1811) Set regexp match vars on regexp match using in operator
(PUP-1811) Add tests for regexp search in array setting match vars
(PUP-2654) Capitalize each segment of a resource type "label"

When a Resource type is stringified it selects the short notation
(e.g. Fee::Foo) over the longer (e.g. Resource[Fee::Foo]), and
when doing so it should output each segment of the FQN with a
capital letter. The current implementation only capitalizes
the initial letter (e.g. Fee::foo::fum).

This fixes the implementation of
TypeCalculator.string_PResourceExpression to capitalize all segments.
(maint) Fix microsoft_windows feature to return false instead of nil.

Fixing Puppet.features.microsoft_windows? to return false instead of nil.
(maint) Remove unnecessary facter stub in compiler_spec.rb.

Removing an unnecessary facter stub.
The stub is incorrect as value does not return a Fact object.
The correct stub is used below.

Also removing redundant require of puppet/rails.
(PUP-2104) Add cfacter setting to enable cfacter implementation.

Adding a --cfacter setting that will replace the facter implementation
with the native facter implementation if the following conditions are
met:

* cfacter is installed
* the version of cfacter is at least 0.2.0 (not yet released).
* facter has not evaluated any facts by the time the setting is set.

To accomplish this last point, certain default setting values needed to
be delay-evaluated as they relied on facts. Therefore a :default
for a setting now accepts a Proc and calls the Proc only once when the
default value is needed.
Merge pull request #2811 from peterhuene/alternative/facter

(PUP-2104) Add cfacter setting to enable cfacter implementation.
Merge pull request #2789 from hlindberg/PUP-1811_in-set-match-vars

(PUP-1811) Make 'in' set match vars when regexp is used to match
(maint) Extract constant for name separator

The name separator is used a few different times in the file. This
extracts it out and freezes the value, which has the nice benefit of a
small speed boost. Unfortunately this isn't a big win for the system
since this code path is only really used for error conditions.
(doc) Describe ca subcommands in puppet help

PUP-2801 requests ability to remove pending CSRs. The requester confirmed
that the puppet ca destroy command met that need. This patch adds basic
descriptions to puppet help ca for destroy, revoke, generate, sign,
print, fingerprint, and verify. The descriptions are largely sourced from
the puppet help cert descriptions of the same functionality.
Merge branch 'pull-2783'

This closes GH-2783.
Merge branch 'pr/2810'

* pr/2810:
  (maint) Extract constant for name separator
  (PUP-2654) Capitalize each segment of a resource type "label"
Merge branch 'master' of https://github.com/puppetlabs/puppet