glsl: Use parse_program_resource_name to parse transform feedback varyings.

Previously, transform feedback varyings were parsed in an ad-hoc
fashion that wasn't compatible with structs (or array of structs).
This patch makes it use parse_program_resource_name(), which correctly
handles both.

Note that parse_program_resource_name()'s technique for handling
mal-formed input strings is to simply let them through and rely on the
fact that a future name lookup will fail.  Because of this,
tfeedback_decl::init() no longer needs to return a boolean error
code--it always suceeds, and if the input was mal-formed the error
will be detected later.
Use a hashtable to keep track of transform feedback candidates