PR #3960 added a call to instr_set_label_callback() to set it to NULL from instr_clone(), but if the callback is non-NULL an assert fires in that case. This only normally happens with emulation labels that turn into traces, which happens to not occur in our very few tests of emulation labels (#3173 covers adding more tests).
We fix that by adding instr_clear_label_callback() here and using that from instr_clone(), since these callbacks are a little different from other values and it feels best to not clear them using the set routine.
A test is added by putting a loop around a scatter-gather expansion, triggering trace creation. I confirmed that the assert does fire without this fix with the loop in place.
Fixes #3962 (closed)