The evolution of cooperation and altruism – a general framework and a classification of models