Program/transformfeedback restore order in virtual context switch.

The original order is wrong. We have to pause active transformfeedback
from previous context, restore the program for this context, and then
restore the active transformfeedback (possibly resume it) for this
context.

Also, add transformfeedback validation for UseProgram.

Also, clean up some outdated bindings (auto-generated by running
ui/gl/generate_bindings.py).

With this CL, a few random crashes on Linux in WebGL2 conformance tests
are gone.

BUG=429053
TEST=gpu_unittests,webgl2_conformance
[email protected]
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/1958253005
Cr-Commit-Position: refs/heads/master@{#392712}
diff --git a/gpu/command_buffer/service/context_state.h b/gpu/command_buffer/service/context_state.h
index ffd38d2..f20186b 100644
--- a/gpu/command_buffer/service/context_state.h
+++ b/gpu/command_buffer/service/context_state.h
@@ -188,9 +188,9 @@
   void RestoreVertexAttribs() const;
   void RestoreBufferBindings() const;
   void RestoreGlobalState(const ContextState* prev_state) const;
-  void RestoreProgramBindings() const;
+  void RestoreProgramSettings(const ContextState* prev_state,
+                              bool restore_transform_feedback_bindings) const;
   void RestoreRenderbufferBindings();
-  void RestoreTransformFeedbackBindings(const ContextState* prev_state);
   void RestoreIndexedUniformBufferBindings(const ContextState* prev_state);
   void RestoreTextureUnitBindings(
       GLuint unit, const ContextState* prev_state) const;