Distributed Adaptive Fault-Tolerant Control of Uncertain Multi-Agent Systems