Move struct match out of varying_matches and rename to varying_match.
Store producer-centric locations in varying_match.

This will allow a future patch to use varying_match for non-generic
varyings.
Store varying_match objects in a hashtable by producer var
Have record() return a varying_match data structure even for non-generic varyings.
Use a simpler algorithm for computing initial transform feedback array size.

Since we are likely to overestimate, realloc the array once we have
determined its true size.
WIP