[Chapel Merge] Update astr mechanism to use C++11 unordered_map

Branch: refs/heads/master
Revision: bc75efd
Author: mppf
Log Message:

Merge pull request #17434 from mppf/astr-unordered_map

Update astr mechanism to use C++11 unordered_map

Now that the compiler sources require C++11, we can use
std::unordered_map. This PR adjusts the hashtable we use to unique
strings (for astr) to use std::unordered_map and, while there, better
factor/optimize a few related functions.

In my experiments, this PR reduces Hello World compile times by about
0.1s. But, besides that, it migrates one use of the custom Map to a
standard C++ type. We would like, over time, to migrate all uses of the
custom Map and then remove it.

Reviewed by @leekillough - thanks!