Distributed Coalition Formation in Energy-Aware Cloud Federations: A Game-Theoretic Approach (Extended Version)