Fix of issue #2657: NX-17 charge rifles now work (more) properly.
Add a new Jsin class for reading JSON from a stream.
Add some new functions for loading arbitrary data from JSON.
Add a method to material_type to load a material from JSON.
Add "type" members to data/raw/materials.json.
Clean material.cpp includes, and use dout() not debugmsg().
Completely switch to new JSON loading system for materials.
Remove old integer id from material_type.
Properly set _ident when initializing material_type from ident.
Give default material an empty ident string, in stead of "null".
Convert bionics to load using Jsin, and fix associated errors.
Condense some wrappers.
Add types to professions.json.
Raise unrecognized JSON object members from INFO to WARNING.
Add some members to Jsin for fetching values by name.
Convert profession to dynamic loading, and remove numeric id.
Modify disease struct to store body-part information
Modify player disease functions to take body-part information if needed
Astyle player disease functions
Remove disease_for_body_part and change temperature disease code to match