Catch exceptions when deserializing a json object in editmap.cpp

While this json based editing of existing things (monster/item/npc/vehicle) is quite useful, one has to be very careful not to introduce errors in the json, because the game would simply crash.
Now the json is deserialized into a temporary object, which is copied into the actual object later.
In case of an error, the original object is not touched and error is printed.
Fix charges of liquids created in containers:

item::get_remaining_capacity_for_liquid returned 0 because the aluminum can can not hold anything (it does not seal), so the soda item had been created with 0 charges inside the can.
Prevent overflow errors