i965: Make a function for initializing a varying map.
i965/fs: Use a varying map to store the list of input attributes.

We will soon have to share this data with the SBE/SF setup code, so
use a data structure that we already use elsewhere in the code base.
i965/fs: Move input_varying_map into the program key.

At the moment the input varying map only depends on the inputs read by
the program, so it's not necessary for it to be in the program key.
But soon it will also depend on the outputs of the previous pipeline
stage.