glsl: Pull interpolation_string() out of ir_variable.

Future patches will need to call this function when there isn't an
ir_varible present to refer to.
glsl: Extract interpretation of interpolation to its own function.

In future patches, we will need this in order to interpret
interpolation qualifiers that appear inside interface blocks.
glsl: Pass variable mode into ast_process_structure_or_interface_block().

Later patches will use this information to do proper error checking of
interpolation qualifiers that appear inside of interface blocks.
glsl: Keep track of centroid/interpolation mode for interface block members.

Fixes piglit tests:
- interface-block-interpolation-{array,named,unnamed}
- glsl-1.50-interface-block-centroid {array,named,unnamed}