mesa: refactor clamping controls, get rid of _ClampReadColor

v2: cosmetic changes from Brian's email

Reviewed-by: Brian Paul <brianp@vmware.com>
mesa: don't set _ClampFragmentColor to TRUE if it has no effect

This should reduce shader recompilations with drivers that emulate fragment
color clamping, because we want the clamping to be enabled only if there is
a signed normalized or floating-point colorbuffer.

Reviewed-by: Brian Paul <brianp@vmware.com>
mesa: move updating clamp control derived state out of mesa_update_state_locked

It has 2 dependencies: glClampColor and the framebuffer, we might just as well
do the update where those two are changed.

v2: cosmetic changes from Brian's email

Reviewed-by: Brian Paul <brianp@vmware.com>
mesa: allow drivers not to expose ARB_color_buffer_float in GL core profile

Reviewed-by: Brian Paul <brianp@vmware.com>
st/mesa: don't expose ARB_color_buffer_float without driver support in GL core

Reviewed-by: Brian Paul <brianp@vmware.com>
gallium/util: add const to a parameter of util_max_layer