Change the C-style arrays in the player class to C++-arrays

Extend the json classes to read/write std::arrays.
Remove the operator=, copy constructor from Creature

Also removed from the inheriting classes player, npc, monster, Character.
Instead let the compiler create those functions.

Also added a virtual destructor to the Creature class.

This allows the compiler to optimize those functions.
Also when adding a new member, one can not forget to add this to the copy operator, the compiler automatically adds it.

Made the copy constructor/operator of Creature and Character protected. Those classes can not be instantiated anyway, one can not copy a Creature, but only a player or monster object.
Always save player/monster/npc with content

Removes the save_content parameter from the serialize functions.

Move storing and loading of player::worn/player::inv/player::weapon to common load/store function. It must be done for npc and player.

Also let the json classes handle the item-vector that is monster::inv, instead of iterating over it manually when storing it.
Export load/store of Creature members to functions of that class.
Implement hierarchical store and load for Creature and sub classes.

Added comment to document the way it is supposed to work.

Separated serialize and deserialize of player, monster, npc into load and store functions which call the load/store functions of the parent classes.