Always save minion key in open mode.

Instead of ignoring auth in open mode, save the key, since it's actually used
to encrypt stuff, and the minion won't be able to decrypt it if a different
key was used.
Make minion ID caching configurable

Conflicts:
	salt/config.py
This should be fine, but use safe_load just in case
handle no gid being passed in
don't compare on Windows
remove extra :
Merge pull request #8498 from UtahDave/0.17

Fix Windows User state
Update version to 0.17.2
Better `exec()` detection. Avoids esky build `NameError`.
Merge pull request #8542 from s0undt3ch/0.17

Better `exec()` detection. Avoids esky build `NameError`.
fix use sudo pwuser not git attribute
Merge pull request #8583 from Jiaion/0.17

fix use sudo pwuser not git attribute
Add RenderError exception class

This class contains member variables that can be referenced when
performing exception handling.

Conflicts:
	salt/exceptions.py
Raise RenderError for yaml.scanner.ScannerError exceptions
Catch RenderError exceptions when rendering a template
Merge SaltRenderError and RenderError exceptions

I had created the RenderError exception to use for a yaml rendering fix
(see 27d4889), but later realized that SaltRenderError already existed.
This merges the two, allowing SaltRenderError to be used with or without
providing a line number and buffer.
salt.utils.templates.get_template_context -> salt.utils.get_context

This moves this function to salt.utils so that it can be used more
generally.
Fix refs to the RenderError exception class

These now use the new SaltRenderError exception class.
Fix jinja template error reporting

This fixes a problem where the wrong line number is reported when there
is an undefined jinja variable. It also provides context to pinpoint the
location of the bad line.

There is also additional cleanup here, the SaltTemplateRenderError class
is removed in favor of the new SaltRenderError, and
get_template_context() has been removed, since it has been moved to
salt.utils.get_context().

Conflicts:
	salt/utils/templates.py
Apply jinja renderer error line fix to TemplateSyntaxError

This applies the same fix made for jinja2.exceptions.UndefinedError to
jinja2.exceptions.TemplateSyntaxError, so that it reports the correct
line.