Separated out the CPU and GPU thread path to avoid clobbering.
Removed the Eternal Darkness check as it is no longer required.

Fixes issue 7835.
Flush the regcache before each FIFO write check.  Fixes the FIFO overflow that occurs in NBA2K11.
Update CPStatus before processing the FIFO events and force an exception check on interrupts.
Added more information into the FIFO unknown opcode error message.
Added a wait state if the CPU thread is running ahead of the GPU thread
Refreshed the CPStatus when the scheduled interrupt event occurs
Changed the CPEnd loop check to an exact match.
Changed ProcessFifoAllDistance back to how it was.
Changed IPL and AD16 to use delayed transfer completions.