Merge pull request #436 from unknownbrackets/io-fix

Restore previous functionality of sceIoCloseAsync()
Cleanup sceKernelCreateVpl() and add warns/errors.
Always use -1 for failed allocs in block allocator.

Before it used 0 and -1, confusing.
Make sure BlockAllocator doesn't get off grain.

This should fix spurious warnings about AllocAt() when loading a game.
Implement basic waiting for VPL allocation.

Always times out so far, though.
Clean up sceKernelFreeVpl(), not waking yet.
Properly wake semaphores in priority order.
Actually wake up threads on vpl free.
Oops, 0 is a valid timer id.
Cleanup the other vpl functions.