Cache gitfs environments

This commit improves performance by not repeatedly looking up the
list of available environments whenever they are needed, and instead
writing them to a cache file whenever the fileserver is updated (and
changes are found). envs() will prefer the cache if it is available.
Add config option to make ebuild.ex_mod_init() opt-in and better documentation.
Documenting backlinks to ebuild.ex_mod_init
fix corner of undefined var in buildout mod
compact zcbuildout log output
Fixing tests
Add note about pygit2's lack of .netrc support

This was discovered in troubleshooting earlier today.
Proposed travis fixes

See http://jenkins.saltstack.com/job/salt-pr-lint/314/violations/
whitelist expand_repo_def in test_valid_docs
Fixing #9694 master_uri is not updated when master_ip is updated
Updated the globbing doc with a link to compound matching, updated the compound matchin doc with another example,
Updated the archive state with a version add for Hydrogen, did the same thing for the list_present grain.
Merge pull request #9795 from terminalmage/travis

Proposed travis fixes
Merge pull request #9799 from gravyboat/develop

Updates to globbing and compound matching docs with an extra example, and visibility of documentation.
Merge pull request #9791 from makinacorpus/fix_buildout

buildout stuff
Catch an exception and log rather than dump stacktrace if lock file disappears
Double to single quotes
Merge pull request #9802 from s0undt3ch/develop

Double to single quotes
Merge pull request #9787 from terminalmage/gitfs-env-cache

Cache gitfs environments
Merge pull request #9788 from kaithar/feature/make-nice-portage-optin

Make ebuild.ex_mod_init's call to enforce_nice_config opt-in