RCD repairs grilles before adding windows to them (#58812)
RCD repairs grilles before adding windows to them (#58812)

* RCD repairs grilles before adding windows to them

- Grilles need to be clear of unanchored items for a window to fit on them
- Attempting to build a window on a grille with unanchored items on it will automatically move 20 of them to your tile
- If more than 20 items are on a tile, adding the window will fail (but you can just do it again to move 20 more)
- Grilles no longer rely on a subtype to break

* Uses text macro thing for simpler code
tgstation/-tg-station,tgstation/-tg-station,coiax/-tg-station,MicroWorldwide/SS13-TG-station,MrStonedOne/tgstation,coiax/-tg-station,optimumtact/-tg-station,WJohn/-tg-station,infinitystation/-tg-station,CPTANT/-tg-station,coiax/-tg-station,CPTANT/-tg-station,ShizCalev/tgstation,tgstation/tgstation,coiax/-tg-station,tgstation/tgstation,CPTANT/-tg-station,optimumtact/-tg-station,WJohn/-tg-station,MicroWorldwide/SS13-TG-station,tgstation/tgstation,Cruix/-tg-station,GunHog/-tg-station,TalkingCactus/tgstation,MrStonedOne/tgstation,TalkingCactus/tgstation,Cruix/-tg-station,TalkingCactus/tgstation,tgstation/tgstation,optimumtact/-tg-station,infinitystation/-tg-station,infinitystation/-tg-station,infinitystation/-tg-station,MicroWorldwide/SS13-TG-station,GunHog/-tg-station,coiax/-tg-station,Bawhoppen/-tg-station,infinitystation/-tg-station,Cruix/-tg-station,ShizCalev/tgstation,infinitystation/-tg-station,Razharas/-tg-station,coiax/-tg-station,MicroWorldwide/SS13-TG-station,Jordie0608/tgstation,optimumtact/-tg-station,Jordie0608/tgstation,WJohn/-tg-station,CPTANT/-tg-station,MrStonedOne/tgstation,GunHog/-tg-station,Jordie0608/tgstation,WJohn/-tg-station,Bawhoppen/-tg-station,CPTANT/-tg-station,MrStonedOne/tgstation,WJohn/-tg-station,Cruix/-tg-station,MicroWorldwide/SS13-TG-station,TalkingCactus/tgstation,Bawhoppen/-tg-station,Bawhoppen/-tg-station,tgstation/-tg-station,Jordie0608/tgstation,ShizCalev/tgstation,Razharas/-tg-station,Bawhoppen/-tg-station,Jordie0608/tgstation,Razharas/-tg-station,Jordie0608/tgstation,GunHog/-tg-station,Razharas/-tg-station,ShizCalev/tgstation,tgstation/tgstation,WJohn/-tg-station,Razharas/-tg-station,optimumtact/-tg-station,ShizCalev/tgstation,GunHog/-tg-station,MicroWorldwide/SS13-TG-station,tgstation/tgstation,MrStonedOne/tgstation,Razharas/-tg-station,coiax/-tg-station,MrStonedOne/tgstation,CPTANT/-tg-station,WJohn/-tg-station,tgstation/tgstation,tgstation/tgstation,optimumtact/-tg-station,Jordie0608/tgstation,MrStonedOne/tgstation,ShizCalev/tgstation,ShizCalev/tgstation,Bawhoppen/-tg-station,GunHog/-tg-station,Cruix/-tg-station,Bawhoppen/-tg-station,MicroWorldwide/SS13-TG-station,MicroWorldwide/SS13-TG-station,Razharas/-tg-station,Cruix/-tg-station,MrStonedOne/tgstation,GunHog/-tg-station,Razharas/-tg-station,tgstation/-tg-station,Cruix/-tg-station,Jordie0608/tgstation,ShizCalev/tgstation,Bawhoppen/-tg-station,Cruix/-tg-station,CPTANT/-tg-station,infinitystation/-tg-station,optimumtact/-tg-station,infinitystation/-tg-station,CPTANT/-tg-station