What are synthetic monitoring tools and how do they simulate user interactions to monitor application performance and availability, when should organizations deploy these tools to detect issues proactively, and how can they improve uptime, user experience, and performance reliability?