Caching Techniques for Reducing the Communication Cost of Federated Learning in IoT Environments