Move item spawn functions into item_group.h

vehicle.cpp: changed birthday to be 0 instead of current turn, to be consistent with the other item spawn calls.

item_factory.cpp: debug_spawn remains there, to big to be moved.

Also moves the include of "item.h" into the source file.
Replace spawning of butchered CBMs with map::put_items_from_loc

See mapgen.cpp, it creates the items from the group via item_group::create_from_group (which for a distribution creates one item only) and adds them to the map.

Note that item group type distribution is the default anyway, so adding it to the json does not actually change it, but makes it more obvious.
Replace map::put_items_from with map::put_items_from_loc

The additional parameters for quantity, charges, damlevel and rand are used nowhere (always given as 0).

The only advantage was the num parameter which was used only once and can be applied be the caller instead.

Use map::put_items_from_loc from monster::drop_items_on_death as it does
the same thing as the previous code there.

Same in map::place_items
Move the duplicated item spawn code in npc into separate functions.

Use item_group::item_from instead of id_from and check for item::is_null instead of EMPTY_GROUP_ITEM_ID.
Use item_group::item_from in npc.cpp to get a random item directly.

This removes the last usage of item_group::id_from and item_group::EMPTY_GROUP_ITEM_ID, both are removed as well.
Add documentation to map::place_items

Use the turn parameter.
Make sure the result of item_group::item_from is tested for being null