Use multiple threads if available for softgpu.

VIVA OVERHEAD.  But it's actually generally faster this way, even with
only 2 cores running (but not a huge improvement then.)

On an i7, this improves things ~2.5x with 8 cores.
Optimize out some clear mode checks.

Since it's really common and the rasterizer is slow for large draws.
Merge pull request #4758 from unknownbrackets/softgpu2

Use multiple threads if available for softgpu.
Fix double free when saving.
As if softgpu wasn't slow enough already, implement bilinear filtering.
Allow held directional buttons to scroll up and down the list repeatedly.