Collective Agency and Cooperation in Natural and Artificial Systems : Explanation, Implementation and Simulation