Improve handling of string constants/printf

Previously string constants were handled specially in gep elimination.
They were not eliminated, and there was code to recognize them for
printf support.  But this interfered with other uses of string
constants.

This change handles string constants the same as other variables in gep
elimination.