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_...) ther is a generic
function that can be used with a filter object that controls what items
should be returned.
Replace player::has_drink and inventory::all_drinks with generic filter function
Use generic item-find function for player::has_mission_item
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.