Centralize the thread ready queue logic.

This makes it slower for now, but should make it easier to optimize correctly.
Replace the thread ready queue with non-STL.

It seems much faster.
Show upto 8 recent item for Android/iOS
Dynamically size the thread queue, explicitly alloc.
Fix crash if queue is empty during savestate.

On load it would then crash.
Merge pull request #1203 from raven02/patch-10

Show upto 8 recent item for Android/iOS
Merge pull request #1200 from unknownbrackets/threadqueue-perf

Improve threadqueue performance
fragment shader: RGBA DECAL does make more sense this way
Optimize resched with a running thread.

Esp. if it would go back to itself.
Don't save vregs for threads that don't use them.
Merge pull request #1209 from unknownbrackets/threadqueue-perf

Don't save/restore VFPU regs for threads that don't use them
Don't use PPGe for debug overlays. Fixes fps counter in games where it didn't work before.
Bigger stack buffer for gpu stats (yes need to do something better here).
Don't "DirtyShader" at the end of frame, instead just "stop". Fixes issues caused by vertex arrays left enabled still hanging around.
Delay GPU signals and waits to simulate cycles.
Make sure lists aren't reused before they complete.
Slow down the GPU clock estimate.

This makes  Fat Princess for example much faster.
Don't allow two drawsyncs to be in play at once.
Use regular events for GPU for now, quicker.

There's too much latency in threadsafe events, causing tests to fail.
Might break games too.  I guess they need to execute more often...
Treat the keyboard and pads differently.

We basically never want two pads active at once, but keyboard is
different.  So, they need to be treated differently.

Fixes #1212.