IDE and XIDE are developmental means. they are software. IDE is older version (they stop developing it, the last version is 8.92). XIDE is newer version. They do the same thing. XIDE is slower than IDE.
ICD is in circuit debugger, it is a hardware, but it has to work with the IDE. It is not an independent hardware. They have ICD3 and ICD4 now. I have used ICD3 once or twice, I could not get much of it. So I stopped using it. I remember PicKit 2 could also do debugger. PicKit 2 is better that PicKit3 (check the youtube https://www.youtube.com/watch?v=LjfIS65mwn8 ).
I don't know anything about IPE. From the web:"MPLAB® Integrated Programming Environment (IPE) is a software application that provides a simple interface to quickly access key programmer features. ... The IPE uses the MDB (Microchip Debugger) Core and MPLAB® X IDE framework to provide all the programming capabilities for all Microchip programmers."
I have never used XIDE and X C, I have tried it, it was slower than IDE and C.