Map cleaner tool and merge driver

Most info can be found in maptools/install.txt
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.
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.
Fix for null.synch() grab runtime.
Fixed the forcesay runtimes, and slightly restructured stunbaton.dm.
Merge branch 'master' of github.com:tgstation/-tg-station into pr/151

Conflicts:
	code/modules/mob/new_player/new_player.dm
Restricted h_style f_style and underwear preference selection by gender to avoid conflicts with sanity checks.
Update to use proper procs rather than setting stuttering directly
Added feedback when grabbing someone fails because they're buckled.
Readded the thwump sound when you harmbaton a dude.
 * Added a new Add To Changelog tool that will make it very easy to add logs to the changelog.
Removing the janicart from the map, replacing it with the new janitorial cart.
Updates the janitor's starting equipment and his locker.

Updates the contents of the safe in the vault.
Committing the janitorial cart! Sprites not included.
Updates the mop and mop bucket code. Should work exactly the same.
Adds an exception for the janitorial cart to spray bottles.