Algorithmic Fairness from a Non-ideal Perspective