Improve GE list ids, fix a rare bug in sceGeListUpdateStallAddr, better errors

List ids should go round robin, but we were returning the same id (e.g. 0) over and over.  A buggy game could have problems with our implementation and be fine on the PSP, so this is safer.

Also, ids always have some high bits set, so I figured replicating the basic range was a good idea.

I happened to run into CoreTiming::Advance() thread switching within sceGeListUpdateStallAddr(), which is probably not a common thing, but this causes the return value to be messed up.  So I made it just force the cpu to run Advance() after the return, which should be safer.  The FF Type-0 demo still seems okay.

This makes the test in hrydgard/pspautotests#111 pass.

-[Unknown]