The "&" means in this situation, "include". So in that case
if(GetThingFlags(player) & 0x1) Print("normal");
means if the thing flag of the player includes 0x1, print out the line.
This is useful when you have to check flags dynamically during game, for example if a player is blinded or drowning, it has to use "&" and not "==" since the player can have other flags along the flag that you check. Like maybe he is drowning while immobilized.
It seems like Enhancement Pack 2.1 had 50 cogs. More or less as you expected?
At this moment, I have 68 cogs for the Sniper Arena. Did you think this simple mod has less cog than Enhance?