Multi-agent optimization and learning methods for sustainable, smart and resilient power distribution systems and microgrids