cloneForBlockCloning

Clone the instruction so it can be used in a cloned block which is present in a scope that itself
or an ancestor scope (in the case of nested blocks) is being inlined. This requires renaming
variables to eliminate naming conflicts. Labels need not be renamed.