fix(gitea): map upstream errors, tighten sync, and fix bulk labels
- Map GiteaApiError from verifyGiteaToken/getRepo to HTTPException
- Skip inactive integrations in repository conflict check
- Only treat AbortError as timeout when our timer fired
- Instantiate Gitea client in addLabelsToIssueGitea
- Sync label colors on Gitea label_updated webhooks (batch by color)
- Skip issue reopen sync when webhook timestamp matches recent outbound state sync
- Set lastOutboundStateSyncAt on outbound issue create and status-driven updates
- Match bulk addLabel existence check to (taskId, name) unique constraint