Made overmap file independent of the game mode.
Removed repeated code.

Also corrected a comment.
seasonal harvesting from trees and shrubs
unified the tree & shrub harvest functions
typo fix
Move the addition of the FIT tag out of the item constructor.

It is now applied there:
- npc starting inventory and worn items (1/3 chance)
- result of crafting (always), including byproducts
- spawning items on the map (e.g. mapgen) (1/3 chance)
- spawning items through item groups (1/3 chance)

Adding the tag does not happen in finalize_crafted_item, but in recipe::create_result instead. That way the item used to display the stats of the result also has the FIT tag.
Add const to some methods, comparing a const item pointer is fine.
Implement generic templated item-in-player-possession functions.

Instead of having specific functions for each type of item to search for
(e.g. get_all_drinks, get_all_with_flag, get_with_...) there is a generic
function that can be used with a filter object that controls what items
should be returned.

Combined the two generic item find functions.

Also add generic function to check whether at least one item matches the filter.

Renamed the function according to suggestion by narc0tiq.
Implement a generic player::remove_items_with function.

Similar to the generic function to get points to items in the players possessions.
The generic remove functions remove the item when it matches the filter and return the removed items in a list.

This allows player::i_rem to work with all item pointers returned by the search functions.

Using a std::list as result allows to remove several items at once (e.g. all items of a given type or several charges etc).
Replace player::has_drink and inventory::all_drinks with generic filter function
Use generic item-find function for player::has_mission_item
Change player::remove_mission_items to be compatible to player::has_mission_item

Using the generic remove_items_with function with the very same filter object.
Also removes inventory::remove_mission_items - as it is not called anymore.
Move inventory::all_items_with_flag into the player class

It now uses the new item search functions.

inventory::has_flag ha been removed, it is not used, code uses player::has_item_with_flag instead.
That function also uses (indirectly) the new search function.
Use generic function for has_item / remove_item in player and inventory class.

Also added documentation to those functions.
Made the item pointer const for easier usage.

Used those function in game::remove_item instead of iteration the possession of npc/player.
Removed player::i_rem(typeid)

The function is not used.

Removed inventory::remove_item(typeid), replaced with:
- player::use_amount - which is also compatible with the has_amount check at the top of the function.
- generic remove_items_with to remove *all* items that match, skipping
  the while loop there and keeping the previous behavior.

Added some documentation.
Removed player::i_of_type

The one time it has been used has been changed to use player::items_with.
Removed inventory::has_liquid

The function was not used.
Removed player::max_active_item_charges

It was not used.
Also removed the same function from the inventory class.
Removed inventory::watertight_container

It was unused.
Extract check for LITCIG into a helper function.

Also checking the whole player possessions (including weapon!).
Move has_gun_for_ammo into the player class.