Enabling Smart Grids: Energy Storage Technologies, Opportunities and Challenges