Why this and not that? A Logic-based Framework for Contrastive Explanations