Ensure sceIo fds are in the range 0 - 64

Some games specifically check (u32)fd < 0x40, anything else they assume to be an error.

This is obviously not a tiny change, but I think the helper I added made it pretty straight-forward.

Fixes Tales of Phantasia X and Crush, at least.  Other games I've tested still work.

Also implements the get fd list func for testing.  We don't allocate fds exactly perfectly (stdin etc. are supposed to use different ids, it seems), but it's pretty close.

-[Unknown]