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.
Merge pull request #9916 from terminalmage/2014.1

Cache gitfs environments (2014.1 branch)
Merge pull request #9910 from nshalman/smartos-shadow-2014.1

improve shadow password handling on SmartOS
Add config option to make ebuild.ex_mod_init() opt-in and better documentation.
Documenting backlinks to ebuild.ex_mod_init
Fixing #9694 master_uri is not updated when master_ip is updated
Catch an exception and log rather than dump stacktrace if lock file disappears

Conflicts:
	salt/fileserver/__init__.py
Fixed a bug in minionfs

When the path of the requested file does not contain any os.sep,
minionfs was crashing with the following exception:
ValueError: need more than 1 value to unpack
On Windows, exceptions were being thrown, because pipes is referenced even after the imports failed
rabbitmq.add_user bugfix: local var & called external func have same name
Fix create_node argument for setting ssh keypair
Update versionadded string
Fix key error with gateway, fixes #9841

Conflicts:
	salt/utils/cloud.py
fixed check_chain in modules/iptables.py
Fix race condition in fileserver cache

This uses os.mkdir which is hopefully atomic and cross-platform. I'd
like to thank http://pythonhosted.org/lockfile/ for that idea.

Conflicts:
	salt/fileserver/__init__.py
Fix whitespace for salt-jenkins

Conflicts:
	salt/fileserver/__init__.py
remove unused variable
FIX: escape quote properly
Fix unit test expected results since we now exit with an error code.
Fix unit test expected results since we now exit with an error code.