An Event-Driven Finite-Time Distributed Optimization Algorithm for Economic Dispatch in Islanded Microgrids