What is fault tolerance in data and software systems, and why is it important for keeping services available when failures occur? How do redundancy, failover, backups, and recovery mechanisms help systems continue operating during unexpected problems?