add cluster admin support for user_list method
add cluster admin support for user_exists method
add cluster admin support for user_create method
add cluster admin support for user_chpass method
add cluster admin support for user_remove method
add cluster admin support for user.present state function
add cluster admin support for user.absent state function
fix for #16240

This just exposes a but in the event class where the nonblocking function doesn't check if you have subscribed yet or not
Start listening for returns before firing off the ping
Change timeout behavior to be a combination of "nothing left to ping" and "minions have all timed out"

Before we were fighting between the regular timeout (default 5s) and the gather_jobs_timeout (default 5s), which mean that if they were the same (as they are by default) you will fire the ping job immediately as you time out the return.

This change makes it so they are sequential instead of parallel-- which is what we are really looking for anyways
Add a regression test for #16240
Updated consistent semantics for SaltEvent get_event factor
node is application kind which is provided by opts['__role']
the values of application kind are 'master, 'minion', 'syndic', 'call'
This allows RAETEvent to set up its lanename correctly
on a master the manor lanename is always 'master'
on a minion the manor lanename is derived from the opts['id']
In general opts should be passed to get_event when possible salt_cloud is the exception for now
This means that can never have two masters running on the same host unless all the directories are
made unique such as cachedir and sockdir
but multiple minions can run on the same host
fMerge remote-tracking branch 'upstream/2014.7' into 2014.7_sam5

Conflicts:
	salt/daemons/flo/core.py
	salt/utils/raetevent.py
Merge pull request #16257 from SmithSamuelM/2014.7_sam5

Updated consistent semantics for SaltEvent get_event factor
Change the fsclient to only be created once

This allows for the fsclient to not have to re-init multiple
times with each salt-ssh call. it also allows for the fsclient to
be available for the complete execution sequence
Enable fileserver backends for extension module pushes in salt-ssh
envs is not a load passing function
Use the correct refs to download the files
Merge pull request #16242 from jacksontj/2014.7

fix for #16240
Merge pull request #16258 from thatch45/ssh_refactor_fsclient

Change the fsclient to only be created once