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

...ader). 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.