Track vpl allocation in PSP ram, use similar algorithm to the PSP

I'm going to slim down and clean up a test shortly for this.

Pros:
 * Fixes #3485, because it allocates in the same order (at least per my tests) as the PSP.
 * Should improve performance in Pangya Fantasy Golf, which previously spent a large % of time freeing small vpl allocations.
 * Does not break past savestates, still passes tests, etc.

Cons:
 * Code uses two allocation methods to provide for savestate compatibility.
 * Games can overwrite tracking info and cause crashes (should be same situation on a PSP.)

VPLs are not that commonly used AFAIK.  However, I wonder if similar allocation strategies are uesd for PSP ram as a whole.  This may explain some issues (like God Eater 2), possibly.

-[Unknown]