Eat some cycles in the Dcache invalidate funcs.
Eat some cycles in suspend/resume interrupt funcs.

These are really common, hope this doesn't have ill effects...
Eat some cycles when working with event flags.
Eat cycles when messing with the dispatch thread.
Eat a few cycles when checking callbacks.

Some games really spam this function.
Eat some cycles when reading the button data.
Eat cycles when enqueuing GE lists.
Eat some cycles when getting the current thread id.
Eat some cycles when flipping the framebuffer.
Merge pull request #5147 from unknownbrackets/perf

Eat some cycles in a few minor places
windows: Skip gamepad HIDs, don't work everywhere.
windows: Check PSP_IsInited() in more places.

This prevents showing buttons as clickable, etc. in the debugger mainly.
In multithreadead, load the game async.

This way if it takes time to load, things aren't frozen while it's doing
that.  This allows us to show any sort of loading animation or etc. we
want.

Before, it might show a odd looking game select screen while loading, and
then finally go to black.  Now it immediately goes to black.

Fixes #2030.
Merge pull request #5149 from unknownbrackets/ui-tweaks

Load games asynchronously (instead of stalling), fix keyboard
windows: Show the open dialog on a separate thread.

Allows the screen to continue rendering, which should prevent black
screens, etc. while browsing.

May help #2755.
Allow texture scaling on changed textures.

But only if they don't change very frequently.  Should fix #1934.
Disable scaling to odd multiples when unsupported.

May help #4000.
Don't bother writing an empty symbol map.

For example, when accidentally opening an invalid file.
softgpu: Don't redraw every pixel of a line 16x.

Fixes the insane slowness when processing lines.  Now it's just regular
super slow.
softgpu: Avoid a divide by 0 in line interpolation.

Fixes crash in Persona 2 loading screens.