Games, Algorithms, and Social Choice: Foundations of Multi-Agent Decision Making