Refactor interupt.c

This PR consist mostly in refactoring the interrupt queue.
There are however two changes in behavior:
* when pool capacity is reached, new code returns NULL, instead of trying to allocate additional space with malloc. In practice, a pool size of 8 elements prevents such a case to occur.
* I integrated the Hack-Fix for Perfect Dark freezes from https://github.com/mupen64plus-ae/mupen64plus-ae/commit/802d8f8