Extracting Events Like Code: A Multi-Agent Programming Framework for Zero-Shot Event Extraction