IPC-2581 export is invalid when board contains duplicate annotations

Description

The exporter identifies footprints as CMP_<sanitized refdes> but has no logic to detect duplication that can result because KiCad does not require footprints to have unique reference designators. The resulting IPC-2581 files fail validation due to having multiple component definitions with the same refDes.

duplicate_refdes.kicad_pcb

KiCad Version

Application: KiCad PCB Editor arm64 on arm64

Version: 7.99.0-3834-g2674a2a294-dirty, debug build

Libraries:
	wxWidgets 3.2.4
	FreeType 2.13.2
	HarfBuzz 8.3.0
	FontConfig 2.14.2

Platform: macOS Sonoma Version 14.1.2 (Build 23B92), 64 bit, Little endian, wxMac

	wxWidgets: 3.2.4 (wchar_t,wx containers)
	Boost: 1.82.0
	OCC: 7.7.2
	Curl: 8.1.2
	ngspice: 37
	Compiler: Clang 15.0.0 with C++ ABI 1002

Build settings:
	KICAD_STDLIB_DEBUG=OFF
	KICAD_STDLIB_LIGHT_DEBUG=OFF
	KICAD_SANITIZE_ADDRESS=OFF
	KICAD_SANITIZE_THREADS=OFF