Add some documentation to KernelWaitHelpers.
Cleanup sceKernelCreateCallback().

And tweak sceKernelReferCallbackStatus().
Refactor wait timeouts.

Also, make them not write the timeout ptr if the thread stopped waiting.
Feels safer.
Update tests.
Check if vblank waits were released before waking.
Add vblank wait callback handlers.

Turns out it's a deadline to wake up by, which makes sense.

sceDisplayWaitVblankStartMultiCB 10
   -> Callback
      sceDisplayWaitVblankStartMultiCB 2
      +2 vblanks
   <- Thread
+8 more vblanks
Merge pull request #3606 from unknownbrackets/callbacks

Wait func docs, sceKernelCreateCallback() cleanup, small refactor