Initial commit of genesis execution module
Cleanup syspath stuff
Fix up rpm bootstrap
Finish up tar and untar functionality
Break out tar into generic pack functions
Fix filelisting infinite loops

Related to #11804 but not sure it fixes it entirely
Allow systemd units no provided by unit files to be handled.

This allows to query status, start, stop, restart and list units that
are not actually provided by unit files. Such units cannot be
enabled/disabled and that's why those actions still prefer the
"list-unit-files" output over "list-units".

Units that couldn't be handled otherwise include for example mount
units and sysvinit compatibility units such as those present on
debian systems.

The output of a "service.running ssh" state on a debian wheezy target
is:

          ID: ssh
    Function: service.running
      Result: False
     Comment: The named service ssh is not available
     Changes:

after this patch:

          ID: ssh
    Function: service.running
      Result: True
     Comment: The service ssh is already running
     Changes:
Fix #11919: handling exceptions in scheduled jobs

Improvements:

 1. Catch exceptions from scheduled jobs and log them.
 2. Only silence OSErrors removing proc file if it's an EEXIST:
 otherwise log it
 3. Put the /var/cache/salt/minion/proc/<jid> deletion in a finally:
 block
 4. Only respect a "running" job as such if its PID really exists
Detect AES key changes in _fire_master

This is a follow up to 8ba9543, which changed the fire_master
implementation to use existing AES key instead of re-authenticating.

That change caused a problem in use cases which send a lot of events
but don't run jobs, because when the AES key changed, the minion
would never notice, and keep sending messages with the old key
indefinitely.

This change adds an attempt to decrypted to response to the sent
event, and to re-authenticated if the response can't be decrypted
in order to handle AES key changes.
Fix compound matching with parens.
Don't encourage bad `**kwargs` usage.
Merge pull request #11959 from s0undt3ch/hotfix/doc-correction

Don't encourage bad `**kwargs` usage.
Allow minion_id to be specified for certain match functions

This commit allows the minion ID to be specified for the functions in
salt/modules/match.py which operate on the minion ID (compound, list,
pcre, glob). Before, they would just use the value of __opts__['id'],
which makes these functions fail to work properly when run from within
Pillar SLS files, due to Pillar evaluation taking place on the master
(and thus __opts__ referring to the master opts instead of the minion
opts).

By adding a minion_id argument to these functions, the ID can be
overridden, and thus be specified using the 'id' grain in Pillar SLS
files.
Only one forward slash
Add open_files function to file module
Allow pacman to return the package that owns a file
Introspect information about a service from systemd
Allow introspection of running services
Allow introspection of enabled services
Dump service introspection as highstate data