The patch adds another parameter to the CloneModule family so that one can create a clone of a module using custom context.
Here is a bit of motivation and our use case: we create hundreds (sometimes thousands) of clones during program execution. If we create them using the context of an original module, then all those clones reside in memory until the very end of a program (when the 'global' context destructed).