Fixes some issues with mechs getting deleted

Mechs delete correctly, and delete their special looping iterator datums just for good measure. Also now sanity check them because now they can be null.

Fixes #4067 hopefully. This issue is hard to repro alone and even with help it's a one-in-a-million timing issue, but I've removed a bunch of spawn()s that only served to create a window one can jump inside between the mech running the deletion proc and actually running Destroy() and setting loc = null. I've also added two safeguards to make sure it doesn't happen in the future. Can't enter a deleted mech and getting deleted kicks anyone inside out just to be sure.

Removed the super pointless obj/mecha/proc/destroy(). Even when this was written, it should have just been in Del()!