feat(labkit-events): add billing event tracking API
What does this MR do and why?
- feat(labkit-events): add billing event tracking API
Implement TrackBillingEvent mirroring Go labkit's structured event format (e=se) with billing context attached via the co field using the iglu:com.gitlab/billable_usage/jsonschema/1-0-2 schema.
- BillingEvent builder with required field validation (category, event_type, realm, unit_of_measure, quantity > 0)
- 16 optional fields matching Go labkit's BillingEventOptionalInput
- Structured event wire fields (se_ca, se_ac, se_la, se_va) on Payload
- Error::Validation variant for field validation errors
- Removed #[allow(dead_code)] from EventType::Structured, ContextData, and CONTEXTS_SCHEMA now that billing events consume them