softgpu: Refactor pixel drawing to avoid code dup.
softgpu: Let's try doubling before alpha blend.

Fixes #5122.
softgpu: Separate out texturing logic.

This way it can be applied to other primitives.  But, this will probably
need larger changes to implement mipmapping.
softgpu: Interpolate/texture lines and points.

Also, expand out pixels in lines, it's just too slow otherwise (30%
overhead or so.)