Fix return value of sceKernelSuspendDispatchThread.
Don't reschedule while interrupts are disabled.
Resume dispatch on thread start.
sceKernelResumeDispatchThread() always returns 0.
Semaphores always wait when others are waiting.
Don't re-wake a thread already woken by delete.

Arg, I thought I'd changed this already.
Prevent waiting on semas while dispatch disabled.

Does relatively well on tests this way.
Don't wait on mutexes with dispatch disabled.

Fixes #339.
Merge pull request #1071 from unknownbrackets/dispatch

Dispatch thread fixes