SSO snapshot and restore improvements

Restore SSO when input handle is zero and track GL_PROGRAM_SEPARABLE state for program objects.