Fix terrain.trap (lava, pits, etc) and make it json-order neutral

* Fix https://github.com/CleverRaven/Cataclysm-DDA/issues/4818 and https://github.com/CleverRaven/Cataclysm-DDA/issues/4914
* Make ter_t.trap neutral via initial assignment to std::string pointer,
  after json load iterate through terrain to set .trap from string, or warn for invalid assignments prior to game start.
* Reduce code size by use of trapmap via trapfind, remove redundant trap_id_from_string.