Use a CORE_POWERUP state when starting.

Otherwise, we could startup in CORE_POWERDOWN in a second game, which is
confusing.
Make sure the gpu thread has a chance to run.

If the scheduler puts it on the same core, it may not even do anything
before we check if the framebuffer is dirty, so SyncThread will quit since
it's not even running.

Instead, let's wait until it's at least done something.
Remove the extra process queues hack.

It seems like it's not helping anymore so it could be hurting.
Don't schedule a finish event when not running.

Otherwise it'll get it when it does run, and stop early.
Implement SetCurrentThreadAffinity on Android.

But, it doesn't really seem to improve performance.
Don't burn the cpu while idle in multithread.
Merge pull request #4495 from unknownbrackets/multithread

Fix some issues in multithreading on Android