Fix wrong sign in vf2i/vi2f with max imm arg

Can you believe it?  It was dividing by -0.0 and then eventually using vsat0 which made it 0.

This makes it better, but the colors are wrong, it's too dark, there's all sorts of problems.  Other games don't really seem affected.

Also undef'd M_PI (to prevent a warning, and keep the old constant which had different precision) and changed one sign conversion while I was there.

-[Unknown]