_GLOBAL_MODULES_CACHE: Update on demand only
_GLOBAL_MODULES_CACHE: Update on demand only

Remove _get_global_modules_cache and _setup_modules_cache which
attempted to pre-load the modules cache for all modules. This is
unnecessary since _get_cached_module_attributes is the only function
that uses the cache, and it will update the cache if the values are
out of date or missing.

_get_cached_module_attributes: Use module.__name__ instead of passing
in mod_name. This is the attribute used by _setup_module_cache.

This also caused a problem with vendored copies of six.moves. Commit
7af9f039ab merged in 590504c9b9 added code to ignore any copy of
six.moves which was not respected by _setup_modules_cache.
Additionally, it did not ignore the self.ignore list. This change
avoids needing to keep these two module ignore lists in sync.

Without this change, version 0.3.10 takes an incredible amount of
time to run on Bluecore's code base, due to the same problem as the
original six.moves fix: Many libraries vendor six.moves, which
references other modules, which takes forever to scan. See:
https://github.com/spulec/freezegun/pull/219

spulec/freezegun