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.
Move reduce_charges from inventory into player class.

Also make reduce_charges(item*) work with any item pointer.
Changed player::has_active_item to use player::has_item_with.

Also removed inventory::has_active_item as it is not needed anymore.
Added documentation.
Prevent multiple item ids in standard_itype_ids.

Would have happened when a mod overrides the item definition.
Because standard_itype_ids is a vector, multiple entries with the same value are possible.
Content of items destroyed by acid get dropped separately.

Otherwise adding those items to the i_at vector invalidates the iterator.
this should fix the bug for loading the map a year later in the same
season, and the plant not being harvestable, but its not...
the submaps last_touched attribute is now when accessed.
this commit's point is to ask in github...
Create sheltered function
Fixed water temperature code
fixes the bugs spotted.
makes use of bitflags for performance optimization
MShock's v0.31

ref_lighter_on
socks_bowling
diamond_katana
diamond_knife
diamond_machete
newspapers
pine_bough
scarf_long
scarf_fur_long
pipe_tobacco
vp_frame_wood_horizontal_2
vp_frame_wood_vertical_2
t_door_b_peep
t_door_boarded_damaged
t_door_boarded_damaged_peep
t_door_boarded_peep
t_door_c_peep
t_door_locked_peep
t_door_o_peep
t_pit_glass_covered
f_large_canvas_door
f_large_canvas_wall
f_large_groundsheet
f_rubble_rock as f_rubble for now
assigned all brew_, beet_syrup
tweaked t_sandbox
tweaked t_wall_tcon
tweaked background for met. wall
fixed apricot tree
For mods:
t_little_column
t_gas_pump_a
gasdiscount_
hand_paddles
hand_pump
Merge branch 'seasonal-fruit-trees' of https://github.com/jcd000/Cataclysm-DDA into merge