Add function to match pillar without globbing
Add pillar_exact and compound_pillar_exact matchers
Re-enable mine compound/pillar matching master-side

Pillar glob matching is disabled, by using the pillar_exact and
compound_pillar_exact matchers
Re-enable compound and pillar matching minion-side for mine
bugfix: tags is already a string
enhance output
refactor
pep8
return soon and remove part of code that would never be reached

Return soon to avoid process unnecessary code.
Re-enable pillar and compound matching for publish calls master-side

No pillar globbing allowed in either matcher
Re-enable pillar and compound maching for publish minion-side
Add note to publish.publish about pillar matches
Fix typo, forgot the self.
Apparently I forgot how to write Python
Another silly typo
Validate exact pillar matches for publishes master-side
refactor
Rewrite Chef execution module

1) Change cmd.run to cmd.run_all so the behavior matches
   the documentation
2) Turn colored output off
3) Remove support for postitional arguments, because they didn't
   work anyway
4) Direct log output to a file for cleaner return data
5) Wrap the calls to chef-client and chef-solo in a script command.
   Without this, the only output captured is the log (which is
   what we want to suppress). This technique gives you the information
   about which resources were updated and a summary of the run.
6) Document accepted arguments
New Chef state module
Pass the right environ to VT's env.

Fixes #17262
Closes #17263