fix wrong probability calculation in item groups of type collection

Use json throw_error function for error reporting

better default probability (100%) for item groups
move zombie soldier death drops to json
move zombie hulk death drops to json

gives up to 4 rags, instead of just one.
move hazmat zombie death drops to json

fix: use default charges for cash card dropped by zombies, the charges are already random from rand_charges of the item type.

fix: add missing alternative probabilities, from the original code in mdeath.cpp it was intended that that they have probabilities of p and (1-p).
move zombie fireman death drops to json
move zombie survivor and mon_zombie_bio_op death drops to json
remove mdeath::zombie and replace with proper death drop groups

Some monsters have already a new death_drop group and the function would
not do anything for them anyway.

The other monsters that had the ZOMBIE death function have now proper
_death_drop groups, which spawn the cloth and the cash card and a random
item (that was done in mdeath::ZOMBIE before).

Part of this the creation of separate item groups for standard zombie clothes
and standard zombie addition drops.

Additionally there are zombies that:
- drop only cloth (skeleton)
- drop cloth and an item from a specific group (bee keeper zombie, child
  zombie)
- drop cloth and additional (non-specific) item and a cash card (normal
  zombies)
- drop only the additional items (boomer, fungus)
Replace game::monitems with _death_drops item groups

Moved game::load_monitem into Item_factor.
Load item groups from "monitem" objects the same way item groups are loaded, so the same syntax applies.
Therefor add a second version of load_item_group, which accepts the item group id and the item group subtype as parameter.
monitem is now basically a wrapper that allows a single item group definition to be used for several monsters at once.
Without the monitems vector the function reset_monitems is not needed either.

The monitemsdef.cpp files is no longer needed.
update documentation of item group system
Move the ammo generation of item groups that spawn guns with their ammo into Item_group.

This allows to remove the function Item_factory::id_from with the with_ammo parameter.
Instead the code in mapgen.cpp calls create_from_group, which returns an item list (which contains the gun and the ammo, or just a single item).

The map special "science" uses the original place_items function again, a chance of 100 indicates that the item group decides how many items should spawn.
The other (previously introduced) place_items function is no longer needed and has been removed.

To place several items at once a new map unction (spawn_items) has been added.

The in_its_container function is also called by the Item_group when it's
creating items. This should be removed and a container definition should
go into the item group definition in json instead.
hides zoom option when not applicablt. makes menu explorable.
Fix reading the wrong json member, it's guns_with_ammo, not just with_ammo.
Move the definition of the map special items to json:

Item spawned on and with the corpses of map special military and drugdealer
Merge remote-tracking branch 'cSep/suicideisnotanoption' into FrankenMod
uimenu: set selected item when filtering instead of reverting to selecting no item at all
Merge remote-tracking branch 'BevapDin/improve-item-spawn-system' into FrankenMod
astyle a*.cpp & c*.h, c*.cpp
Compiler didn't like that const.
Merge remote-tracking branch 'BevapDin/uimenu-fixes' into FrankenMod
is_hostile_within no longer alerts for tracking mobs/dogs