Xenoarchaeology

Adds new feature: cloning animals and plants from fossils. Features: 
- 13 discoverable prehistoric species to clone from fossils (including 5 brand new ones).
- 11 discoverable prehistoric plants to clone from fossils (including 9 brand new ones).
- New minigame that involves correctly ordering the genomes inside each genetic sequence to unlock an animal/plant.
- Fossils are no longer ornamental.
- Added satchel bag to make carrying around fossils easier.
- Some prehistoric animals and plants may seem strangely familiar... while others may bring more than the erstwhile scientist bargains for.

Feedback and bugfixes from previous PR have been added. Feedback and bugfixes from playtesting on Paradise Station have also been added (thanks Midaychi). Map has not been updated to avoid merge conflicts. I'll make a separate PR for the mupdate once this has been accepted. See #4891 for previous attempt. Code is largely identical. 

This PR also contains various fixes and tweaks to xenoarchaeology, including:
- Miscellaneous fixes involving location/holder issues with the anomaly utiliser. 
- Anomaly harvester runtimes/tweaks. 
- Reworked anomaly utiliser to be a lot easier/nicer to use
- Replicator and autocloner moved over to timer based system. 
- Talking items should work again. 

New xenoarchaeology features:
- Replicators now require materials to produce things. 
- Four new eldritch items: poltergeist mask, vampiric statuette, endlessly replenishing containers, box of holding. 
- Artifact harvesters can now harvest the secondary effect of artifacts as well. 

Balance tweaks: 
- Caps stun effect values for pulsing. 
- Sets max utiliser battery charge to 300 (30 sec). 
- Changes energy consumption for utiliser pulse effects to (effect charge time * effect range * effect range). 
- Changes energy consumption for utiliser touch effects to 100 (10 sec worth of consumption). 
- Reduced spawn time on autocloner. 

Ready for merge. 
When the object gets GC'd it'll automatically get removed from the list.