Prevent npcs from seeing (and taking) sitems that they should not be able to see.

Like planted seeds. Or items in a container that is far away. Uses the same logic as for the player.
simplify item::next_mode

No reason to have two loops over the content
cycle to the next gunmod when removing a gunmod

Also, no need to create a new item, instead use the gunmod item directly.
Cycle to next gunmod when "unloading" a gunmod.

Also use inventory::assign_empty_invlet to assign a new invlet instead of iterating.
Merge branch 'fix-mods-reset-on-removing-gunmods' of https://github.com/BevapDin/Cataclysm-DDA into MoreMerge
Merge branch 'fix-npc-ignoring-sealed-stuff' of https://github.com/BevapDin/Cataclysm-DDA into MoreMerge