(Maint) Add cprice to Git mailmap

Without this patch I noticed the git log contains both Chris Price and
cprice as separate authors.  This patch fixes the problem by normalizing
them to Chris Price <chris@puppetlabs.com>
(Maint) Move Trollop inside of Puppet

The Trollop library is improperly vendored inside of Puppet without this
patch applied.  This is a problem because end users or developers who
have the trollop gem installed will be monkey patched by Puppet since we
open up the top level Trollop module namespace.

This patch fixes the problem by placing Trollop in the namespace of
Puppet::Util::CommandLine::Trollop.  This fixes the problem because the
only place Trollop is used by Puppet is inside the
Puppet::Util::CommandLine class.  Therefore we no longer need to use the
absolute namespace notation of the leading ::.

This also prevents us from monkey patching the real Trollop gem that
lives at ::Trollop if it's been loaded into the process.
(Maint) Use $LOAD_PATH instead of $:

This is just slightly more readable.
(Maint) Clean up markdown in README_DEVELOPER

Without this patch the README_DEVELOPER file displays poorly in my Vim
buffers.  This patch adds some additional markup to separate the code
snippets from the prose.
(#15337) Do not merge user and system puppet.conf

Puppet 3.x reads settings from both ~/.puppet/puppet.conf and the system
puppet.conf without this patch applied.  This is a problem because it
makes it difficult to determine where to load plugins and extensions
from at runtime.  Merging the configuration file also makes it more
difficult to explain where a particular setting is taking effect.

This patch makes the intended `puppet.conf` reading behavior the
following:

 1: If provided, use explicit puppet.conf in `--confdir`
 2: If root, use system puppet.conf
 3: Otherwise, use ~/.puppet/puppet.conf

This patch also changes the behavior of rack puppet master applications.
We now intended for the rack configuration file, `config.ru` to
explicitly set `--confdir` to avoid reading from
`~/.puppet/puppet.conf`.  Please see the example in
`ext/rack/files/config.ru` for an up to date rack configuration.
(#10978) add instances to smf

Before the addition of smf instances, the smf service instances were not
present in the `puppet resource service` output. Instead it used to
collect the legacy init.d services. This commit adds the self.instances
method which collects the `svcs` output and parses it to find smf
instances. This commit also adds test cases for this feature.
Merge remote-tracking branch 'rahul/ticket/3.x/10978_smf_instances' into 3.x

* rahul/ticket/3.x/10978_smf_instances:
  (#10978) add instances to smf
Merge pull request #1006 from jeffmccune/bug/3.x/15337_dont_merge_puppet_conf

(#15337) Do not merge user and system puppet.conf
(#15471) Specify platform appropriate confdir

Previously, the spec test was failing because the `confdir` was set to
`/etc/puppet`, but the expectation was looking for a platform specific
directory, e.g. `C:\Documents and Settings\All Users\...` on Windows.
Merge branch 'maint/3.x/settings-windows' into 3.x

* maint/3.x/settings-windows:
  (#15471) Specify platform appropriate confdir