When starting a thread, put old thread at end.

This matters so the right thread is run later when scheduling switches
back.
If the mipscall id doesn't match, don't create.

Fixes a crash when savestating.
Merge pull request #1138 from unknownbrackets/scheduling

Fix scheduling when starting a thread + potential crash