Reworks the main handlier for impurities and adds it to the add_reagent proc instead. Adds an option to bypass the purity splitting too. This reduces the amount of add_reagent calls and will prevent any unintended on_mob_add() and delete calls for reagents that are removed from splitting.
Fixes smoke, foam and cigarette issues too - since they used copy_to isntead of trans_to.