The iterator was being registered too late (after calling erase) so
erase was performing unsafe list manipulations.
May fix #680 and related errors.
Telltale signs of this bug are crashes shortly after a bunch of subunits
get killed (UNIT HAS DIED in the last few lines of log output), which
happen more often than not when killing units with missiles.