(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.
(#15644) add test case to check for packages that are yet to be installed.

Added the check for latest value in the test case,
Added a new test case that checks for correct behavior in case the
package is not installed.
(#15644) refactor the parse_line so that it supports the newer format

Previously the parse_line conflated the different output formats of the
older and newer `pkg list` commands. This commit splits the formats to
separate regexes so that it is easier to manage. Especially if the pkg
list format changes yet again.
(#15644) refactor instances latest and query

This commit simplifies self.instances, latest and query methods by
removing redundant lines.
(#15644) it is ufoxi - 5 dashes

Previously, the fixtures format did not correctly represent the output
of pkg list command. This commit fixes this problem.
(#15644) modify the test cases to fail on unknown pkg format

Earlier, when a pkg list line could not be parsed, the provider warned
the user about this fact and continued. This behavior is dangerous. We
change it to fail instead.
(#15644) ensure that pkg installation is non-interactiveS

Earlier, pkg install did not have --accept parameter, which means that
licenses would not be automatically accepted. Since puppet is a
non-interactive process, this is not the correct behavior. This commit
adds the --accept parameter to accept licenses during pkg installation.

Earlier, pkg uninstall added -r always to the command for recursive
uninstall. However, this was removed in the later version of the pkg
command. This commit adds the logic to check for the version before
doing `pkg uninstall -r mypkg`
(#15644) add documentation,

Adding more comments to the methods, and changes the method names to reflect the
method usage.
(#15644) add more test cases.