Only one `sys.stderr` stream handler should exist. Fixes #3155
Use yumbase.rpmdb for list_pkgs()

I all-too-hastily reverted a change @mchesnut made in 585f7cc. The
discussion regarding this can be found here:

https://github.com/saltstack/salt/issues/2884#issuecomment-12012256

This commit puts back @mchesnut's change, with the exception of the
"args" bits. Accepting arbitrary arguments in list_pkgs is not supported
uniformly across pkg providers, and in addition I am working to make
pkg.version do exactly this across all providers, in order to facilitate
multi-pkg support for the pkg.latest state. This makes passing arguments
to pkg.list_pkgs redundant. I have replaced refs to list_pkgs which do
this with refs to version.
Merge pull request #3193 from s0undt3ch/issues/3155

Only one `sys.stderr` stream handler should exist. Fixes #3155
Merge pull request #3195 from archtaku/list_pkgs

Use yumbase.rpmdb for list_pkgs()
Verify file.recurse source exists.
Fix traceback because outputter expects data in {'host', data.. } format
Add source path to error
Merge pull request #3198 from torhve/develop

Fix traceback because outputter expects data in {'host', data.. } format
Merge pull request #3199 from UtahDave/fix_file.recurse

Verify source exists when attempting file.recurse
Fix typo: s/buy/by/
Merge pull request #3200 from dlindquist/develop

Fix typo: s/buy/by/
Prepare ebuild for multi-pkg support in pkg.latest

available_version and version now support an arbitrary number of
arguments.
Update pkg.latest to work with available_version

A minor tweak removing the version comparison logic from pkg.latest
since it has been decided that pkg.available_version will return an
empty string unless the package is a new install or there is an upgrade
available.
make pkg.latest state return data more consistent

minor verbiage tweak
Make zypper work with mutli-pkg in pkg.latest

Also made the update discovery more reliable. It was parsing "zypper
packages -i" before, which is basically a dump of all packages, and all
versions in all repos (even the ones older than the currently-installed
version). Instead, it now uses "zypper list-updates", which only shows
available updates. I put this code into a list_updates function that can
be run from CLI to show what updates are available for install. This is
probably a good general-purpose function to add to all providers at some
point.
Added check for debconf-utils to debconfmod module.
some minor fixes to the contrib doc
Update shadow password docs with improved hash command
Fixed a boolean logic oopsy
Merge pull request #3201 from archtaku/issue2906

Prepare ebuild for multi-pkg support in pkg.latest