i965: split do_wm_prog into multiple functions

Split do_wm_prog into

  brw_wm_init_compile
  brw_wm_do_compile
  brw_wm_cache_compile
  brw_wm_clear_complile

Add struct brw_wm_compile to be passed around them.
i965: split do_vs_prog into multiple functions

Split do_vs_prog into

  brw_vs_init_compile
  brw_vs_do_compile
  brw_vs_cache_compile
  brw_vs_clear_complile
i965: split do_gs_prog into multiple functions

Split do_gs_prog into

  brw_gs_init_compile
  brw_gs_do_compile
  brw_gs_cache_compile
  brw_gs_clear_complile
i965: enable threaded precompile (WIP)

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