make launcher suitable for mac environment

readlink -f doesn't work on mac, so i used code salvaged from the internets to simulate the functionality on mac
inserting code to correct funnel behavior

https://github.com/CleverRaven/Cataclysm-DDA/issues/7208

Funnels were not updating correctly, we discussed this change in the above issue thread.
Add whip
Rapid mutation, mutated-Toughness

These add post-Thresh variants of Tough, which stack with the starting
traits: there shouldn't be any trouble getting enough HP now.  Added a
faster version of Genetically Unstable as well, exclusive to post-Thresh
Chimera.
sct initial class
Added weather flurries to snow animations
Allow snowstorm to be set via debug menu
Initialize weather animations only once in weather_data
Moved SCT class into output.cpp
Moved game_message_type to output.h
Merge branch 'master' of https://github.com/CleverRaven/Cataclysm-DDA into TheJob
Botched update
Revert "Botched update"

This reverts commit 6d7bb8d62bbce8194a1cec0f073dc41cf22b7375.
Update professions.json

added a profession Bionic Prepper. a few CBM's losing a couple skills and the lighter
Belted-layer related balance changes

Prevent the tool belt from being fitted. Currently the tool belt is objectively better than the tactical dump pouch, because it can be fitted and specialized military equipment can't.

Allow the tactical dump pouch and the fanny pack to be fitted.

Remove the chest rig from the belted layer. It's a vest, and is not anything like a belt.

Move the purse to the belted layer. It's a purse, and is not anything like a shirt.

Remove the holster from the belted layer. It doesn't cover anything, so having it be belted doesn't do anything.

Halve messenger bag and runner pack volume to 10 and 9, respectively. They're still better than every single other 0-enc, non-fittable item on the belted layer. 

Allow the scabbard to be fitted. There's currently no reason to use a scabbard, which offers up to the equivalent of 17 volume (when sheathing a nodachi), when you can use a messenger bag, which offers 20 volume and is easier to find. Even after the messenger bag's volume is halved, messenger bags are still the better choice for carrying most swords without this change; only the zweihander and the nodachi are larger than 10 volume.

Allow both large and small quivers to be fitted for the same reasons.

Prevent survivor-brand backpack and rucksacks from being fitted, increase the volume to match their non-survivor-brand counterparts.
Changing Bionic Prepper to be more balanced, lowered skillset and power storage changed metab to torsion upped profession cost to 8
Extract artifact type handling into artifact.cpp.
Update professions.json
Move as much artifact definition code into artifact.cpp as possible.
More prices fixes.
Change item::material to return a material pointer directly.

Previously item::material returned only the material ident. That ident has been used to get the material_type object. Now this is already done by the get_material function.

Use material ident null instead of empty ident for is_null check. The
json file contains a material with ident "null" and some code also
relies on it.
Search for translated material name in game::list_items_match

Also made search for category and material case-insensitive.
Random character respects INITIAL_POINTS now
Let random char creation respect max stat/skill