Fix traceback in format_log

format_log assumes that if the first value it sees in the changes dict
is a dict with a key 'new', that the information in the changes dict is
from a pkg state. However, this causes format_log to traceback (and
causes the state to output nothing) when the changes dict contains mixed
data. This commit uses a more precise method of determining if the
changes dict contains information from a pkg state. It checks to see
that all values in the changes dict are dicts themselves, and that all
of these sub-dicts contain both "new" and "old" keys. Technically, this
is not a perfect solution since someone could write a state which
returns changes in a similar format, but it at least gets rid of the
traceback.
slight modification
Make output correct if package was removed

Makes the log line say something like "foo changed from 1.2 to absent"
if the package was removed.
fix bug: file.recurse remove empty dirs if clean and include_empty set
Recommend debconf-utils and do it in salt-common. fixes #3834
Treat key=0 different from other falsy-looking values
sysctl can return permission denied messages on stderr
Fix regex in salt.modules.apt._get_upgradable

Third capture group assumes no spaces in the source name, and certain
PPAs (Salt's own being one of them) contain a space. Modified the regex
so that it should work with any apt source. This fixes #3733. Also made
a couple pep8 fixes.
Get environment for the runas user
Add runas to rvm.install
Allow for user installations of rvm
Add missing import
Make a copy of the environment

Without making a copy, the environment will be tainted for subsequent
actions.
wrap web_url in quote before pass to wget
Fix a regression in the stateconf renderer and updated docs.
Use file.contains_regex to check for successful sed change
Join a line that didn't need to be broken up for PEP8
Make /usr/bin first in path to ensure that system python is used
Quote sigs for status.pid selectively

Will quote if the sig doesn't end with ' or ", and if it doesn't begin
with -.  This is to prevent it from quoting sigs like:

'someregex'
-E someregex
-E 'someregex'  <-- Why we check for trailing quotes, not leading
Add documentation to tell why we chose to quote as we did