remove finished threads every loop of all threads
remove finished threads every loop of all threads

When all threads are looped, finished threads must be removed so
threads that are waiting for those to complete and be removed may
continue executing. This effects broadcast and wait for example. The
threads created by broadcast and wait can finish in the same tick and
must be removed from the list of threads so that broadcast and wait
knows to stop waiting.

LLK/scratch-vm,LLK/scratch-vm,LLK/scratch-vm