Generalizing to Unseen Domains: A Survey on Domain Generalization