(#15803) add self.instances to zpool provider

- Adds self.instances which makes use of zpool list
- Adds a test case for checking that it works.
(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.
Merge remote-tracking branch 'rahul/ticket/3.x/15803_zpool_instances' into 3.x

* rahul/ticket/3.x/15803_zpool_instances:
  (#15803) add self.instances to zpool provider
(#15803) Split string for ruby 1.9

Previously, the spec test passed on ruby 1.8, because String includes
the Enumerable module, so that the collect method could be called on the
string. This doesn't work in ruby 1.9.

This commit splits the output of the svcs command on newlines, and then
collects the service instances.
Merge branch 'maint/3.x/15803_break' into 3.x

* maint/3.x/15803_break:
  (#15803) Split string for ruby 1.9
(#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
Merge remote-tracking branch 'upstream/3.x'

* upstream/3.x:
  (#10978) add instances to smf
  (#15803) Split string for ruby 1.9
  (#15337) Do not merge user and system puppet.conf
  (Maint) Clean up markdown in README_DEVELOPER
  (Maint) Use $LOAD_PATH instead of $:
  (Maint) Move Trollop inside of Puppet
  (Maint) Add cprice to Git mailmap
  (#15803) add self.instances to zpool provider