Give crafts unique ids in the form of a type+id tuple

Since we can now safely hold "weak pointers" to crafts, let UFOs refer to their killer by unique id, instead of a pointer that may be deallocated or reused

Provide a savegame method to look up a craft by its unique id, it could always come in handy