Multi-Agent Coordination: DCOPs and Beyond