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);