deferred resolves on the nextTick to allow for the javascript garbage collector to run, converted the application to use the new amd loader not almond.
clear the callbacks once a promise has been resolved, this reduces the memory footprint
improve the memory usage by using an explicit cache of modules, nor relying on the promise