(PUP-1362) (PUP-1775) Use yum check-updates for latest yum packages

Early versions of the yum package provider used `yum list available` to
determine the latest version of packages that were `ensure => latest`.
However the versions of yum available around that time changed the
output formatting of yum, which meant that the parsing code would break
on a regular basis (#836).

Commit 8722e439 resolved this by using the yum python bindings to
interact with yum. This required shipping a python helper script to
provide the interface between Puppet and the python libraries. However
this opened up a host of other issues ranging from what version of
Python is symlinked to '/usr/bin/python', how the yum database is
locked, and so on (PUP-1362, #11380, #16623). In addition changes to
yumhelper.py were very hard to test or reason about since it doesn't
neatly plug into our existing tests.

This commit removes yumhelper.py and replaces the update checks by
calling `yum check-update`. The output format of this command has not
changed since CentOS 4 and works all the way up to RedHat 7 so we should
be able to rely on this for a while.
(PUP-1680) Set accept-encoding to identity when http_compression is false

Override the Ruby 2.x default of setting accept-encoding to gzip when puppet http_compression is set to false.
correct test description for http_compression disabled
(PUP-2560) Remove inventory service

The inventory service was deprecated in puppet 3.7. It has been
superceeded by PuppetDB and so the puppet master should no longer try to
implement this kind of functionality.
(PUP-3048) Remove saucy from build defaults

This commit removes Saucy from the build_defaults. It went EOL on July
17, 2014
(PUP-2560) Disallow facts over the network

The final removal of the inventory service is to stop allowing facts
over the network. This stops the various facts terminii from responding.
Technically it was not longer reachable anyway because of the
pluralization rule changes: facts is seen as a "search" query for the "fact"
indirection, which does not exist. However, just to be sure, this stops
them from being used at all, even if there was a request constructed
that could get the facts indirection.
Merge pull request #2969 from clantant/PUP-3048/stable/saucy

(PUP-3048) Remove saucy from build defaults
(PUP-3070) Update vimfiles included in Puppet
(PUP-3035) Add /var/run/puppet to debian packaging

Previously /var/run/puppet was created only during service start on
debian for both puppet and puppetmaster services. However, as it is used
in both of those services, it makes sense to have it owned and created
by one of the puppet packages. puppet-common is a dependency of both the
puppet and puppetmaster packages, so this commit adds /var/run/puppet to
the puppet-common.dirs file so it will be created in that package. This
also brings parity between redhat and debian packages in this respect,
as redhat puppet packages create the /var/run/puppet directory already.
This also adds a dpkg-statoverride call to manage permissions for the
/var/run/puppet directory.
(PUP-3035) Refactor dpkg-statoverride calls in puppet-common.postinst

This commit does some simple refactoring int he puppet-common.postinst
to avoid some unneeded repetition.
(#21272) Refactor created directory from 'puppet module generate'

Currently the created directory is 'username-modulename'.
This patch changes this to 'modulename' because that's mostly used.

This is a new PR since #1711 broke the tests
Hopefully with this one i managed to fix the tests as well.
(PUP-2914) Remove remaining rgen dependencies

In 6a94700, the rgen 0.7.0 library was added to the vendor directory in puppet,
and as such is no longer an external dependency. This commit removes the rgen
package as a dependency of the puppet rpm and deb packages, so that it is not
installed in addition to the vendored rgen (or worse even installed at a
conflicting version).

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #3007 from MosesMendoza/PUP-2914/master/remove_rgen_deps

(PUP-2914) Remove remaining rgen dependencies
PUP-2040/PE-3113 Ignore symlinks in module build with pmtignore.

Before this commit, pmtignore functionality worked, but only after
checking for symlinks, so it was impossible to ignore symlinks. This
commit allows symlinks to be ignored, too.
(docs) Revise and unify explanations of module/file references in function docs
(PUP-3117) Allow multiple *=> in the same body and error on duplicate

This fixes a problem in the grammar that made it impossible to have
more than one *=> per body. 

This commit also adds a check for duplicate entries in the resulting
hash with the final set of parameter to value mapping.
Merge pull request #3014 from andersonmills/fix/master/PUP2040-gitignore_symlinks

PUP-2040/PE-3113 Ignore symlinks in module build with pmtignore/gitignore.
(PUP-3117) Add tests for combination of default / hash
(docs) Mention file() function in file type's content attribute

Now that this function works in a more useful way, we can advertise it a bit
more widely.
PUP-2040/PE-3113 Remove symlink-ignore tests for symlinkless OSes

Before this commit, the spec tests checked for symlink-ignore behavior on all
OSes. After this commit, the spec tests only check symlink-ignore
behavior on OSes that have symlinks.