add __setRequiredModule__ and __unsetRequireModule__

These two function 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:

    exports.getModule = function () {
        return require(abc);
    };

Even though the require call occurs after the module load, we can alter the results:

    theModule.__setRequiredModule__(abc, abc);

    assert(theModule.getModule() === abc);