Distributed Control And Game Design: From Strategic Agents To Programmable Machines