Improve efficiency of event.fire_master

event.fire_master was doing an authentication handshake on
every event.  When firing events for monitoring-type applications
across many serversthis is a noticable amount of extra work for the
master.

This change sends events via the local minion event bus to the main
minion process, and from there up to the master using the existing
crypticle instance.
improve shadow password handling on SmartOS

Fixes #9874
Also fixes an unreported error that when half of this fix is applied
password setting succeeds but appears to fail due to lack of reading
password hashes from the shadow file.
SmartOS Esky Packaging: Fix PATH for services

We ran into some weird issues with these SMF manifests
with certain critical binaries not being found in the PATH.

This PATH is derived from root's default PATH when logging
in to a SmartOS zone.
Grains caching layer

* Creates a new flag for salt-call called '--skip-grains' that will completely bypass the grains loader. (Mostly for testing. Will break many modules in practice!)

* Creates a new flag for salt-call called '--refresh-grains-cache'. This forces a refresh of the grains cache on a minion.

* Adds a new minion config option called 'grains_cache'. Defaults to False.

* Adds a new minion config options called 'grains_cache_expiration'. Specifies the number of seconds allowable for before a minion grain cache is declared to be stale.

* Correct a potential syntax error in the minion config variable, 'grains_refresh_every'.

* Modify the 'apt' module so that it does not stack-trace in virtual() if grains aren't loaded.

* A new caching layer for the grains loader that can write to and read from a msgpack'd serialized data file containing grains that is stored in the minion cache.
Merge pull request #9915 from cachedout/grains_caching

Grains caching layer
Merge pull request #9909 from nshalman/smartos-shadow-develop

improve shadow password handling on SmartOS
Merge pull request #9913 from nshalman/smartos-esky-sbin-fix

SmartOS Esky Packaging: Fix PATH for services
Modified the parsing the output from ls -lZ to use regex instead of split() in order to resolve issue 9845
Modified string to use single quotes - looks like this is the convention?
Added 'r' prefix to string to indicate that character escaping is used in regex
Added ``python`` Jinja filter to jinja renderer docs
Prevent the file.serialize python formatter from outputting OrderedDict
Merge pull request #9918 from whiteinge/python-filter-ordereddict-fix

Python filter ordereddict fix
rm unused imports
fix pylint C0325 superfluous-parens warnings
Merge pull request #9922 from hulu/unused-imports

remove unused imports
Merge pull request #9921 from hulu/superfluous-parens

fix pylint C0325 superfluous-parens warnings
postgres: Pylint

This fixes #9920
postgres: fix: setting login could allow createdb
postgres: fix password encryption handling