A Framework for Feasible Counterfactual Exploration incorporating Causality, Sparsity and Density