Add violation deduplication and same-device exclusion
- Add relatedSessionIds to concurrent_streams and simultaneous_locations
violation data for tracking all sessions involved in a violation - Add isDuplicateViolation() to prevent duplicate violations when
multiple sessions trigger the same rule within a 5-minute window - Exclude same-device sessions from concurrent_streams and
simultaneous_locations rules to prevent false positives from
reconnects or stale session data - Update violations route to fetch related sessions from violation
data for display in the detail dialog - Add comprehensive tests for same-device exclusion and relatedSessionIds