Extracted key_node_compare from tree to tidy a bit the implementation and ease maintenance.
Added a static assert to make sure that flat_[xxx]map::allocator_type::value_type  is std::pair<Key, T>. Fixed some test cases failing to do that properly.