fix(feature_flags): omit ProjectFeatureFlagScope.ID when unset
What
Adds omitempty to ProjectFeatureFlagScope.ID's json tag.
Why
FeatureFlagStrategyOptions.Scopes reuses ProjectFeatureFlagScope (the API response type) to build the request body. A freshly built scope (e.g. &ProjectFeatureFlagScope{EnvironmentScope: "staging"}, adding a new scope to an existing strategy during an update) leaves ID at its zero value, which still serialized as "id":0. GitLab's API reads that as "update scope 0", which doesn't exist, and 404s.
Creating a brand-new flag with scoped strategies is unaffected, since there's no update-in-place involved — only adding/updating scopes on an existing strategy hits this.
Reported while wiring up the gitlab_project_feature_flag Terraform resource: terraform-provider-gitlab!3209#note_3626582666.
How tested
Added TestUpdateProjectFeatureFlag_ScopeCreate, a regression test asserting a scope with only EnvironmentScope set serializes without an "id" key. Full test suite passes.