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
Added debconfmod state
Cut the number of dependencies in selinux.py
Added an extra bit of documentation
Merge pull request #3203 from techhat/selinux

Cut the number of dependencies in selinux.py
Add result field to service situation

Shoud be a fix for #3150, needs confirming
Correctly using the test option now
Correctly detect Amazon Linux
Merge pull request #3205 from techhat/issue3121

Correctly detect Amazon Linux
Getting #3123 working will take some more backend work...
Remove transitional code to clean up long dead bug in private

Key management, Fix #3025
Fix #2895