Learning Optimal Fair Classification Trees