Cooperative Multi-Agent Learning: A review of progress and challenges