Map cleaner tool and merge driver

Most info can be found in maptools/install.txt
Tiny bit of tidying up for global.dm and landmarks.dm, removing some old, oooold vars.
Minor chems update.

-Spraybottle chempuffs will now pass over tables.
-Further reorganization of chemistry reagents. Organizes toxic chems into subtypes. This cuts down on copied code and allows us to do fun things in the future, like machines that filter poisons and such.
Added adminlogs to hacked laws (tator syndicate board)
Merge branch 'master' of https://github.com/tgstation/-tg-station
Code for the janitorial cart. Updates some parts of the old janicart too.
Refactored underwear to use datum/sprite_accessory/underwear similar to hair and facial_hair.
People may select any underwear (regardless of gender) at a dresser, but not in preferences.
random_underwear(gender) will return a random pair of underwear suitable for your gender.
Removed an unused variable in sprite_accessory

The new_player preferences screen now randomizes character slots for which there is no data (so no more bald, fat, white guys in diapers greeting new players)
datum/preferences character settings are randomised at New().
replaced /datum/preferences/proc/randomize_appearance_for(human/H) with /datum/preferences/proc/random_character(), it does the same stuff without the copying to a mob. Basically, now when you want to make a random character you just do var/datum/preferences/A = new(); A.copy_to(human_mob), randomisation of appearance and name will already be done. Easy.

Reworked the savefile updating/versioning code to make it easier to work with. I've used it to update underwear preferences to the new system as an example.

Signed-off-by: carnie <elly1989@rocketmail.com>
Accidentally remove a dna initialize call.
 * Re-added the phone to the AI Foyer. Added a desk and table with some wall objects moved around.
Merge branch 'master' of https://github.com/tgstation/-tg-station
Objective items in a cheesewheel in a book in your backpack will now be located properly by the game.
Standardises names in supplyshuttle.dm
Adds GetTypeInAllContents, which should be self-explanatory. Recursively checks for a typepath locating in an atom.

It's used by cavity implants to make sure you can't slip the nuke disk in.
Removes /obj/item/weapon/gift from the code, as it was completely unused.

Also removes the smallDelivery loop in /mob/proc/get_contents(). It's amazing that proc worked at all, it really does do what it's described as doing. I'm leaving it for now, as the game seems to have gotten on well enough so far, and it'll probably just increase processing for no gain if I fix it.
Merge branch 'master' of https://github.com/tgstation/-tg-station
-Adds Giacom's remove_all_type reagent proc, and replaces the nasty if chain in antitoxins/adminordrazine with it.
Fix for null.synch() grab runtime.
Merge branch 'master' of https://github.com/tgstation/-tg-station
Fixed the forcesay runtimes, and slightly restructured stunbaton.dm.
Merge branch 'master' of https://github.com/tgstation/-tg-station