add the possibility to intercept require() calls

These two functions make it possible to inject mock modules required after the host module is loaded.

If for instance a module has a method which requires another module in its logic, it is possible to inject the mock there:

    // x.js:
    exports.getModule = function () {
        return require("abc");
    };

Even though the require call occurs after the module load, we can alter the results:

    var theModule = require('./x.js');
    theModule.__setRequiredModule__("abc", abc);
    assert(theModule.getModule() === abc);