Of Choices, Failures and Asynchrony: The Many Faces of Set Agreement