GCC 4.6 compatibility: no std::unordered_map::emplace().

Basically reverts (only for GCC 4.6) what was done in
b9b690b611e2ad5ca654e78916d6ba7f676cb27a.
GCC 4.6 compatibility: no in-class data initializers.
Trade: properly return false instead of nullptr.