Implement `as` syntax for multiple base types (`mob|obj|turf`)
This is an attempt to support code like
for (var/atom/A as mob|obj|turf|area in view(null, null))
to continue the implementation parity between OD and DM
This is probably not a great first project (it was supposedly easy at first, but the proper implementation is slightly more complicated) for me, so the code quality is dubious.
Current issues are something along the lines of
Error OD0000 at code/mob/living/silicon/ai.dm:1102:11: Negative stack size
though this should all work fine once these errors are resolved (?)
It compiles without errors so I'm undrafting this and re-requesting review
This pull request has conflicts, please resolve those before we can evaluate the pull request.
Abandoned?
Yeah these haven't been worked on for a while, I'm not sure if I'll be able to get to them. Someone else can continue it or work on it if they want
Closing in favor of #2228