Merge remote-tracking branch 'origin/master' into vehref
Const accessors in preperation for more const changes.
Use auto and existing map methods to reduce reliance on i_at() returning a non-const vector.
Add i_at_mutable() for code that needs direct access to map item lists.
Add accessors to safely access items on the map.
Make map::add_item() public to bypass certain checks when necessary.
Split handling of map items and vehicle items so map items can be handled more safely.
The payoff, make map::i_at() const to reduce risk of bypassing caching.
Reorder charging station checks for slightly better performance.
Fix lua accesses of items.
Small mapgen fix
Adds option to disable new invlets (except manual)
Use map::sees instead of player::sees to check for nearby fire.
Add has_items_with_quality to player class

and use it. The functions checks wielded and worn items, the inventory function only checks the inventory, which is not enough.
Fix hotkey collision in butcher menu:

Use 'z' as hotkey for "cut up all you can".
Always recalculate AIM data when moving.
Recognize gunmods in player::get_weapon_dispersion

If get_weapon_dispersion is called with a gun with an active gunmod, it will use the gunmod item instead of the weapon item.

Also check for curammo being null before using it, just in case.
Fix encumbrance message plural:

Only time when plural for is required is for eyes, all other body parts are singular.
Add checks for monster being a hallucination.

And react properly: skip the action / ignore the monster.
Add option to spawn hallucination monsters from debug menu