WL#13459: Optimize hash table in hash join

Affects: Server-8.0   —   Status: Complete

We intend to switch the hash table used for hash join from 
mem_root_unordered_multimap to a different implementation 
(robin_hood::unordered_flat_map), 
with our own multimap adapter on top. This is to get

 1. A faster hash table.
 2. Less memory usage: Smaller hash table overhead, less space wasted to 
    alignment and key/value lengths, better memory usage with many equal keys.
 3. Better memory control: Getting closer to the allowed join buffer size,
    and also ability to free the old memory when the hash table grows).

Note that #2 means we need to spill to disk less often.