Issue #397: Binance API contract drift detector (fail loud on header changes)

Implement explicit validation that X-MBX-USED-WEIGHT-1m header is present,
parseable, and not silently missing. Adds loud one-time alert paths in both
Rust and Python when header is missing, malformed, or renamed.

** Rust (opendeviationbar-providers) **
  - `update_from_headers()`: Changed from silent nested if-let to explicit
    validation with ERROR level logging for:
    * Header missing (contract drift)
    * Malformed (non-numeric, negative, exceeds u32 max)
    * Non-UTF-8 encoding
  - Added 6 new test cases covering all validation scenarios and casing variants
    (lowercase Spot, Title-Case, ALL-CAPS Futures)
  - All 21 tests pass including new cases

** Python (ratelimit/file_coordinator.py) **
  - New method: `validate_header_present(headers, endpoint)` checks presence
    and u32 validity with loud ERROR alerts
  - Checks all header casing variants: lowercase, Title-Case, ALL-CAPS
  - Returns bool for optional use; logging is loud regardless (ERROR level)
  - Integrates existing patterns: logger.error() with endpoint context

** Tests (test_ratelimit_header_validation.py) **
  - 15 pytest cases covering: valid variants, missing, malformed, renamed,
    edge cases (zero, u32 max), multiple validations, whitespace handling
  - All tests use caplog fixture to verify ERROR level logging

** Rationale **
The silent if-let pattern antipattern (#397) allowed Binance header changes
to degrade silently — downstream consumers wouldn't notice rate limit headers
disappearing. This loud fail-fast pattern ensures visibility in logs and
Telegram telemetry immediately upon API drift.
