st/nine: clamp color inputs for ps <= 2.0

Nine code is clamping color outputs for vs < 3,
but msdn docs says it is done in the ps.
Wine seems to clamp them at the vs level.

To prevent potential issues, just clamp at both vs
and ps level.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
st/nine: saturate oFog and oPts vs outputs

According to docs and Wine, these two vs outputs have
to be saturated.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
st/nine: Fix POW implementation

POW doesn't match directly TGSI, since we should
take the absolute value of src0.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
st/nine: Handle RSQ special cases

A input of 0.0 must return FLT_MAX,
and we should use the absolute value of the input
as input to ureg_RSQ.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
st/nine: Handle NRM with input of null norm

When the input's xyz are 0.0, the output
should be 0.0.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
st/nine: Correct LOG on negative values

LOG, like POW, is applicated on the absolute value of the input.

Also return -FLT_MAX instead of -Inf for an input of 0.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
st/nine: Remove duplicated code for ps texcoord input declaration

Signed-off-by: Axel Davy <axel.davy@ens.fr>
st/nine: Implement texcrd modifiers

texcrd (texcoord ps 1_4) can be used with two modifiers _dw and _dz
that means the channels are divided by w or z.

Implement those in shared code, since the same modifiers can be used
for texld ps 1_4.

Signed-off-by: Axel Davy <axel.davy@ens.fr>