[READY] Merge the side attribute into the body_part framework

Done!

**This PR:**
1) Temperature and clothing are tracked on a body part basis. No more "feet" or "hands". As a result the player is able to wear things like mismatched shoes or gloves.
2) Most gloves/boots have been split from a "pair of" item into singular items. As a result many recipes, weights, volumes, and prices have been cut in half to account for the 2->1 change. **This is only glove, boot, and sock-like items, other items like pants, shirts, or armor are unaffected.**
3) On crafting one of these items players are able to choose whether to make a left or right handed item.
4) Many specialty shoes (such as roller skates or swim fins) have had their effects split so that they grant a lesser effect while only wearing one. The same with many mutations, which will now grant half of their effect if you are only wearing one shoe.

**Technical:**
1) No more side + body_part tracking or passing by reference! Hooray!
2) Items now track their own coverage. All things that used to depend on the coverage of the type (attacks, warmth, etc.) now look at the items themselves.
3) JSON items will still accept "HANDS", "FEET", "ARMS", or "LEGS" as a shortcut, and in fact that is what is mainly used.
4) JSON items will also accept targeted body parts, in the form of "HAND_L", "FOOT_R", "LEG_L" and so on.
5) JSON items will accept "HAND", "ARM", "LEG", and "FOOT" coverage and will randomly pick a side for an item. If an item has multiple random coverage (such as ["LEG", "FOOT"]), then all random coverage will be on the same side.
6) The "PAIRED" flag will cause items to attempt to spawn in pairs of a left and a right 80% of the time.
7) Recipes can be "paired" : true, which will cause them to query the player on which handedness of item they would like to create when the craft is completed. Without this the recipe will generate a randomly handed item on completion.

**Notes:**
1) Briefcases and bindles come in a left and right hand form. This is due to the limitations of the system, since there is no way to make a 1-handed item that can be held in either hand currently.
2) Old saves will produce some harmless error messages when they first load. Save+load them again and they should be fixed.
3) Old "handed" items will be randomly assigned a side, but will not acquire a "left" or "right" at the front of their name. They will still function identically to any new items though, and what they cover will be present in their description.
The parameter handed should be an enum (`enum HANDEDNES { NONE, LEFT, RIGHT }`), avoiding the translation from int (e.g. in crafting.cpp) to string. Having a string that can only have two meaningful values is not good at all. This is the opposite of Dev Benefits.