Add known traps & search for traps when waiting

For traps that might be invisible to the PC, create a copy of the trap definition with visibility set to 0 and prefix the trap id with "known_"
Use those traps instead of the normal ones when placing a (otherwise invisible) trap
When waiting a turn, search the surroundings for traps, and if possible make them into the known_ ones so they stay visible.
add add_memorial_log as virtual function to Creature class

add add_msg_if_npc/add_msg_player_or_npc to monster class, assume same logic as for npcs
and replace <npcname> in message string with monster name + article + if
first word in the message make it uppercase.
add a known traps map to the player class

It stores the locations of the known traps, also adds to functions to access that map.
astyle trapfunc.cpp
combine player trapfunc and monster trapfunc into one function

The trap functions also support NULL as creature pointer
Add triggering traps by thrown items.

Items must have a weight of at least trpa::trigger_weight (new trap property) for this to happen.
Fix some error found by Wishbringer
Fix some more trap bugs:

using monster::name instead of monster::disp_name because the later returns 'the <monstername>' but the article is already included in the sentence.
add sound to shotgun trap
remove some messages for monsters that are handled generic with the Creature pointer.
Merge branch 'traps-the-second' of https://github.com/BevapDin/Cataclysm-DDA into BevapDin-traps-the-second