r300g: don't set sample positions to the pixel center if MSAA is disabled

but an MSAA resource is bound. This effectively makes the MSAA disable switch
not affect rasterization, but it still affects the alpha-to-one and
alpha-to-coverage states. This hardware just lacks a proper MSAA disable
switch.

This fixes graphics corruption in sauerbraten.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59194
WIP: allow varying structs
Merge assign_locations and store_locations
Move set of varying matches into linked lists
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
Add type information to varying_match.

At the moment this is redundant since the same information is also
available through producer_var->type, however future patches will
introduce some varying_match objects in which producer_var is NULL.
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.
Move call to store_tfeedback_info() into assign_varying_locations().

This will allow us to take advantage of the varying_match objects
(which only exist during execution of assign_varying_locations()) in
tfeedback_decl::store().
Remove tfeedback_decl::assign_location.  Instead, store the
association between tfeedback_decl and varying_match earlier in
linking, and then look up the location at the time of
tfeedback_decl::store().
Simplify the handling of gl_ClipDistanceMESA
WIP