No coding needed. Some modelling skills are handy here, though, and a little Hammer trickery.
Basically, you can add keys in Smart Edit mode to any entity, in case a certain property that is supported in the code isn't described in the .fgd (and there's quite some of these, afaik). Now I don't exactly know the key to change skins, but there's a key for changing the submodel configuration for sure, I believe it's the 'body' key. The accompanied value controls the combination of the submodels.
Try this one on the human grunt entity. You'll see certain values represent certain combinations of heads and weapons (yes, there's also a 'no weapon' instance for the weapon subgroup, for dead grunts).
Once you understand that principle, and know how to change the models and all, it's not a hard job.