Xenoarch Bug Fixes

Ignore the Merge pull, don't know what that's there.

Xenoarch bugfixes and tweaks. Changelog file included. Cleaned up a bunch of outright wrong code (broken batteries and analyzers) and tweaked archaic secondary effect identification. 
Looks bad, but wouldn't work any other way, at least the way I saw it (without shuffling the if statements).

if(!target_reagents) will fail on Artifacts, who have no reagent list or container. Inserting the if(istype(...)) into the if(filled) statement below looks better and makes more sense, but it would never get there because if(!target_reagents) returning the dropper attackby first.

The nested if(filled) within the if(!target_reagents) is performing a check to make sure it has reagents.