Squirrel away the JIT contexts into TLS when done

This prevents attempting to run deallocated code (which is no longer present
always)
When running rusti, consume the JIT contexts and collect them in the parent task
Fix running code via '-Z jit'
auto merge of #7769 : alexcrichton/rust/issue-7732-fix-rusti-again, r=cmr

Turns out this was a more subtle bug than I originally thought. My analysis can be found in #7732, but I also tried to put descriptive info into the comments.

Closes #7732