introducing the foreman ext_pillar module
Cleanup for #13160

This commit makes the changes from #13160 conform to the Salt way by
kreturning booleans for enable/disable. In addition, it makes the
following changes:

1. Adds versionadded directives

2. Fixes leaked file handles by using with statements (and
   salt.utils.fopen).

3. Raises a CommandExecutionError in ares where the failure of a
   function reaches an error case.
Implement puppet agent enable/disable'ing
Add puppet.status, returning agents state
Add puppet.summary, extracts various infos out of latest run report
Fix mistakes pointed out by pylint in 3 previous commits
Merge pull request #13160 from mfournier/puppet-modules-improvements-cleanedup

Puppet module: 4 new methods
correct erroneous os.kill() statement
add missing reference to error message
Added an execution module for varnish (https://www.varnish-software.com/)
fixed trailing whitespaces and stuff pylint complained about.
Allow arbitrary absolute path. Error on relative path without user argument.
Return error on relative path without user.
Fixed moved uinfo.
Merge pull request #7 from mfournier/os.kill-fix

fix mistake mentioned in #13162
Merge pull request #13161 from s0undt3ch/develop

Json is not going through serializers anymore. Refs #13158
Merge pull request #13164 from mortis1337/varnish-execution-module

Added an execution module for varnish
Lint
Merge branch 'puppet-housekeeping' of https://github.com/terminalmage/salt into terminalmage-puppet-housekeeping

Conflicts:
	salt/modules/puppet.py
Merge branch 'terminalmage-puppet-housekeeping' into develop