Major enhancements to frontier exploration and navigation:
Exploration:
- Integrate A* planner for frontier reachability checking
- Add recovery phases (backup/rotation) after bumper events
- Track path history for reverse direction calculation
- Detect "surrounded" state to avoid infinite stuck loops
- Support edge-point fallback when centroid unreachable
Navigation:
- Add Escaping state for obstacle avoidance maneuvers
- Back away from obstacles before attempting replan
- Accept "close enough" tolerance for frontier targets
- Enhanced waypoint progress logging
Thread coordination:
- NavigateTo action delegates to path-planned navigation
- MoveTo action for direct control (recovery moves)
- Proper success/failure callbacks between threads
Drishti client:
- Upgrade to dual TCP+UDP architecture
- TCP for maps/registration, UDP for high-freq streams
- Non-blocking I/O with select() for both sockets
Also adds test map with obstacles and movement test scripts.