i965: enable threaded precompile

Add brw_shader_program_save_compile and brw_shader_program_restore_compile to
save/restore precompile results in the shader program.  When DeferLinkProgram
is set, we save the precompile results instead of uploading them immediately
because we may be on a different thread.

A few other modifications are also needed.  We introduce
brw_shader_program_precompile_key and initialize it during NofityLinkShader
because we cannot inspect the context during precompiling.

TODO: It looks like brw_select_clip_planes should not be used at shader
compile time.  Imagine the shader program is used by another context.