This patch changes node's module loading behavior so that the
require.cache is always the first place to consider when loading a
module.
The motivation for this change is to help people who are writing
focused tests for their node.js applications, and need a mechanism
to inject test doubles to replace native node.js modules.