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.