Fix array overstep in check_effect_blowup

If a robot fires a weapon, and then the robot dies, and then the robot
object is replaced with some object with a high id number, and then the
weapon hits, then check_effect_blowup used the id of the replaced object
as though it were a robot id.  This causes an overstep or understep of
Robot_info.  Tighten the check by requiring that the parent object have
the same signature at impact time as it did when the weapon was fired.
This can misclassify a weapon fired by a now-deceased guidebot as a
non-guidebot weapon, but there is not enough information saved to handle
this case, and guidebot deaths are rare.