Merge pull request #9076 from s0undt3ch/0.17

Skip internal keywords
Only reset AES key in reject() if include_accepted

This is a mitigation for issue 8263, so that if multiple
'normal' rejections (of pre keys) are done quickly or
concurrently, the buggy handling of key updates
is not encountered.
Wait for new time_t before updating AES key file

This is a mitigation for issue 8263, wherein the master
experiences a communications failure when multiple
key updates happen in one second.  We reduce the chance
of this by checking time() against the mtime of the file
and waiting until they are not equal.
Merge pull request #9081 from jcsp/8263-mitigate

8263 mitigation
Fixed chown() and chgrp()
Avoid conflicting options.

If you're a superuser, you already have permissions to create a user. Postgres will complain about conflicting options if you attempt to pass both. Refs #8717.
Make ps execution module available for psutil>=0.3.0

After looking at some of the older source code versions, it seems that
the majority (if not all) of the features present in the ps execution
module became available between psutil release 0.2.0 and 0.3.0. This
commit removes the python version check in the __virtual__ function, and
replaces it with a check of the psutil version. Only psutil versions
greater than or equal to 0.3.0 will result in the ps execution module
being available.
Cleanup version comparison

Tuple comparison is cleaner, hat-tip to pedro :)
Add note about topfiles to state.show_sls
Return False if the role creation fails (return value would be nonzero).  Fixes #8778.
Return False if the role update fails (return value would be nonzero).
Fix argument parsing for arguments containing pound signs

Passing these through yaml.safe_load() will result in the pound sign and
everything after it being interpreted as a comment. This commit stops
the argument from being passed through yaml.safe_load if it is a string
and contains a pound sign.
Keep pid of salt CLI command from showing in status.pid output

When status.pid is executed by the salt-minion instance running on the
master, it also returns the pid of the salt CLI command, because the
search string matches. This commit adds another grep to the ps/grep/awk
one-liner, which filters out lines matching 'status.pid'.
Don't trigger the name resolution at import time. Fixes install on Windows machines.

Conflicts:
	salt/config.py
Fixes issue #8951 - gem install fails when rvm is set up with another user
namespace file_exists
Wrap highstate.cache.p in restrictive umask.
switches paths to state files to use forwardslashes on masterless windows

Conflicts:
	salt/fileclient.py
Support to appending extra_install_flags to windows installer from the winrepo
Update the parser options with values from config file. Fixes #8447.

The way the parser merges the CLI configuration with the file configuration is.

For each option:

  1. If a value was passed to the CLI, that value rules.
  2. If not value was passed to the CLI and no value is defined in the config file. The default, it any, is used.
  3. If a value is not passed to the CLI and the value is defined in the config file, the config file one will be used.

Some code was using the parser options for logic and values after the configuration loaded, but the parser options were never updated to the configuration files values.
So:

  4. Do what we said in the above 3, **and**, update the parser option to have that value.