Add a LazyLoader class which will lazily load modules (with the given loader). It will load all modules if asked to iterate or for the len. This means that the startup time should decrease with the possibility of having to load a module further down the track. If this is undesired you can call load_all() to load them all now.
Some pep8 cleanup
Change up the default kwarg value
Reverse, because
Merge pull request #12327 from jacksontj/job_cache

Add a LazyLoader class which will lazily load modules (with the given lo...