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.
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.
Merge branch 'underwear' of git://github.com/Carn/-tg-station into carnunderwear
Hair and facial hair styles are now randomized when changing gender in preferences setup. Thanks Pete
Added some very basic tools for modifying/printing savefiles as plaintext (for testing).
Typofix
Merge branch 'underwear' of git://github.com/Carn/-tg-station into carnunderwear
Merge branch 'master' of github.com:tgstation/-tg-station

Conflicts:
	code/modules/mob/new_player/new_player.dm