Revert "main: don't maintain TexEnv and Tnl programs when using the core profile."

This reverts commit 72c25d559c9195e7c7961f555bc1b856d85f6991.

New plan:

main: do nothing in the ff fragment shader when using the core profile.

When the core profile is active, there is no fixed function fragment
shader functionality.  However, we still need to generate a dummy
fragment shader program in case the back-end expects it (e.g. to cover
the case where GL_RASTERIZER_DISCARD is active and the client hasn't
supplied a fragment shader).

This patch makes the dummy fragment shader program do nothing when the
core profile is active.  This will prevent breakages in later patches,
when we stop exposing compatibility-only builtin variables in the core
profile.