Implement JsonOut class for outputting JSON.
Add convenience methods to JsonOut for writing string and int arrays.
Remove types from JsonOut::write_* method names and use templates.
JsonOut: Convert string characters < 0x20 to unicode escapes.
Add inheritable interface classes for json serialization.
Merge branch 'jsonout2' into json_mason
Move artifactdata.h into artifact.h where it all should really be.
Rearrange some artifact-related things for more sanity.
Move artifact save_data()s from artifact.h to artifact.cpp.
Fix JsonOut utf-8 string output.
Add write(const char *) method to JsonOut.
Convert artifact saving to new serialization interface.
Allow JsonSerializers to be written directly by a JsonOut.
More properly serialize the artifact list.
Move artifact loading to artifact.cpp and use JsonDeserializer.
Clear up -Woverloaded-virtual warnings.
Fix saving loaded artifacts.
Remove now-unused artifact constructors.
Add a function to JsonObject to get all member names.
Convert uistate.json saving/loading to json.h.