Fix minor issue with fmath's OIIO::clamp (#2594)
Fix minor issue with fmath's OIIO::clamp (#2594)

OIIO::clamp had the property that if `val <= low`, it sets `low`.
But actually, when `val == low`, we want to use `val`, not `low`.

This may seem like the same thing, and it is for ordinary types.  But
OSL uses this clamp template for "dual" types (implementing automatic
differentiation), and it causes a case where `val == low` but `val`
carries derivatives that we want preserved, not written over by the
0-derivatives of the fixed `low` value.

Signed-off-by: Larry Gritz <f0a1ce6f80112d72f7276457fd261d671b827567@larrygritz.com>
lgritz/oiio,lgritz/oiio,lgritz/oiio,lgritz/oiio,OpenImageIO/oiio,OpenImageIO/oiio,OpenImageIO/oiio,OpenImageIO/oiio