Revert part of 289b0eb which broke some games.

Although defAction isn't a good solution, removing it outright seems
to break things.
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.
Merge pull request #435 from unknownbrackets/vpl

Proper VPL rescheduling/waiting