The G300 would be the phone to go for. To clear things up and put them super simple for the OP, the G300 ships with Gingerbread but there's an official update to ICS coming shortly. I see that you already know the difference between ICS and Gingerbread.
Cyanogenmod is a very popular version of Android available in two distinct versions: CM7 (Gingerbread) and CM9 (ICS). Cyanogenmod, and other custom ROMs (as non official versions of Android are known) require you to root the phone, and then install a custom recovery to install them. Rooting gives you "superuser" access to the device, essentially allowing you to do anything on it. A custom recovery is needed to install the new, custom version of Android instead of the one that came on the phone.
Custom ROMs give better performance and more customisation options. There will be many available on MoDaCo and lots of help too, so make sure and ask if you're not sure about something. Hope this helps!