Changes how fork is handled to avoid races. Now the parent makes an anonymous private temporary copy of vmcode pre-fork, freeing it post-fork. The child sets up its new mappings from the temporary copy, avoiding any issues with copying the parent's live data.
Adds a sanity fork regression test.
Issue: #3556