Merge branch 'Reroll-random-character' of https://github.com/SeanMirrsen/Cataclysm-DDA into merge2
Merge branch 'vehicles' of https://github.com/Mshock777/Cataclysm-DDA into merge2
Fix blacklist checking
Add plate helmet to no medieval mod
Price fix.

A sewage sample should not be worth five dollars.
Add content weight to drug furniture.
Merge branch 'Old-save-fix' of https://github.com/i2amroy/Cataclysm-DDA into mergethisone
Merge branch 'Hardcoded' of https://github.com/i2amroy/Cataclysm-DDA into mergethisone
Merge branch 'Noiseandsmoke' of https://github.com/i2amroy/Cataclysm-DDA into mergethisone
Merge branch 'sewage-fix' of https://github.com/Rivet-the-Zombie/Cataclysm-DDA into mergethisone
Infrastructure changes
Monster special update
Further update
Mod update
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