mesa/glsl: Separate parsing logic from _mesa_get_uniform_location.

The parsing logic is moved to a new function in the GLSL module,
parse_program_resource_name().  This name was chosen because it should
eventually be useful for handling everything that OpenGL 4.3 calls
"program resources" (e.g. uniforms, vertex inputs, fragment outputs,
and transform feedback varyings).

Future patches will make use of this function for linking transform
feedback varyings.
Rename uniform_field_visitor to reflect a more general purpose.  TODO: improve this comment.

There's actually nothing uniform-specific in uniform_field_visitor.
This patch renames it to program_resource_visitor, and changes several
of the comments used within it, to clarify that it can be used for
other purposes as well.

A future patch in this series will start using variable_field_visitor
to enumerate fields within varyings.
WIP: use shared code in tfeedback_decl::init()
Use a hashtable to keep track of transform feedback candidates