Keep track of disc0:/ vs. disc0: in path parsing.

The difference matters and was getting lost.
Properly savestate umd0: references.
Remove a duplicate syscall entry.
Fail with an error in sceIoChdir for invalid dev.
Fail if the cwd is too long as well.
Return an error when there's no async op.

And generally improve error codes for async io poll/wait funcs.

Fixes #1790.
Merge pull request #1791 from unknownbrackets/io-async

Correct errors for async io, other io fixes