Federated Learning on Heterogeneous Data via Adaptive Self-Distillation