Add VisitorState dataclass and VisitorRegistry singleton for tracking
active Matrix visitors and broadcasting their positions.
- VisitorState: tracks visitor_id, display_name, position (x,y,z),
rotation, and connected_at
- VisitorRegistry: singleton registry with add(), remove(),
update_position(), get(), get_all(), and clear() methods
- get_all() returns list of visitor_state dicts in Matrix protocol format
Fixes#670