salt.utils.yum*: clean up __virtual__() to use os_family grain

Fixes #2294
salt.modules.grub: Fix some bugs and move from boot to grub

Since it makes sense to have separate grub/grub2, syslinux, and lilo
modules because things like conf keys will be TOTALLY different, move
the name from boot to grub.

Use a with statement for reading the config file and also wrap it all
up in a fancy try/except that raises CommandExecutionError on issue.
convert docstring into comment. they probably overwrite the module top docstring.
fix ENCRYPTED usage on user creation
Merge pull request #2519 from bclermont/overwrite_module_docstring

convert docstring into comment
Merge pull request #2520 from bclermont/postgres_encrypted_password

fix ENCRYPTED usage on user creation
Merge branch 'develop' of github.com:saltstack/salt into random-module-updates

Conflicts:
	salt/modules/grub.py
Add an outputter for grains.ls and a todo to the hosts module
Momma sez, "global variables are THE DEVIL"!

In the SELinux salt module, the path of the SELinux filesystem was
cached in a global variable. Instead of using that, memoize a func
that looks up the directory.  Verify *all* of the commands this
module attempts to use are available before running them and having
it blow up. Finally, it moves things to using the standard with ...
try/except mantra for opening the enforce file. Should make things
cleaner
extend pkgng module functionality

Added audit, install, delete, update and upgrade functions
salt.modules.zypper: check for zypper in $PATH
Don't run rstrip on puppet module's cmd.run output

This happens by default in cmd.run
salt.module.mdadm: a few sanity checks

    - Test for mdadm in __virtual__()
    - Make sure the device ie: /dev/md0 exists before running mdadm
      on it. It is easier to blow up before executing a command
Fix LSB distro detection

OpenSUSE 12.2 has odd output from platform.linux_distribution(), as can
be seen below:

>>> platform.linux_distribution()
('openSUSE ', '12.2', 'x86_64')

Notice the trailing space after openSUSE. This causes the lookup in
_OS_FAMILY_MAP to fail, causing the os_family grain to be set to
'openSUSE ' instead of 'Suse'. By stripping leading and trailing
whitespace from the values returned by platform_linux_distribution(),
this issue is fixed.
Merge pull request #2524 from archtaku/develop

Fix LSB distro detection
Add ability to install pkg from RPM file (zypper)

This implements #2291 for zypper. list_pkgs() was also modified. Running
"zypper packages -i" only returns information on installed packages
which are in the repositories. RPMs manually installed do not show up
and thus cannot be tracked. Additionally, running "zypper packages -i"
pulls in data from the repositories to include in its output, which
results in some latency in getting results. Parsing the output from an
rpm -qa both eliminates this latency and allows non-repo packages to be
tracked.
Merge pull request #2522 from cedwards/freebsd

extend pkgng module functionality
Merge pull request #2523 from SEJeff/random-module-updates

Random module updates
Merge branch 'develop' of git://github.com/archtaku/salt into archtaku-develop

Conflicts:
	salt/modules/zypper.py
pacman.py cleanup

Some tweaks to the code I added for #2291. These include:

1) Better logging when the package is not successfully cached, or a bad
   path is provided for a local package file.
2) If the package file can't be cached or found locally, the calls to
   list_pkgs() are skipped and an empty dict is returned. No need to run
   these functions when you know there will be no change.
3) The "source" kwarg is explicitly defined in the function definition
   for install().
4) More descriptive docstring for install().
5) Better regexes in _parse_pkg_meta().

Also, in testing I found that the loader throws a traceback when reading
__virtual__() in yumpkg5.py, because part of the value of the osrelease
grain is passed to the int() python built-in. In rolling release distros
like Arch the osrelease grain is empty, so a check has been added to
avoid this traceback.