faster StringTable

- use a hash table with open addressing and linear probing
  for better cache locality
reserve enough initial capacity to avoid hash table resizes

- based on numbers from phobos compilation
fix Issue 13630 - Senseless error with foreach over variadic list
fix Issue 13601 - static if (__ctfe) should emit error
[diagnostic] Use "compile time" for consistency instead of "compile-time"
fix Issue 13644 - ICE with foreach over array of Tuples
Merge pull request #4076 from 9rnsr/fix13630

Issue 13630 - Senseless error with foreach over variadic list
Update doc-comment for dmd_aaGet
use triangular numbers for probing

- guaranteed to visit every bucket in a power of 2 sized hash table

- mitigates clustering problem (with many hash collisions) while still preserving
  good cache locality
use MurmurHash2

- much better distribution leads to less collisions
  and thus to faster lookup

- also faster
reduce StringEntry size from 16 to 8 byte

- more cache hits

- allocate StringValues from pools in StringTable
  and reference them with a 32-bit index+offset

- hash was only 32-bit anyhow so use uin32_t instead of hash_t
StringEntry as POD

- call getValue(vptr) in findSlot only when hash
  matches (saves a possibly unnecessary load)
Merge pull request #4088 from MartinNowak/fasterStringTable

faster string table
Merge pull request #4086 from ntrel/aa-get-doc

[trivial] Update doc-comment for dmd_aaGet
Merge pull request #4084 from 9rnsr/fix13601

[REG2.064] Issue 13601 - static if (__ctfe) should emit error
Merge pull request #4085 from 9rnsr/fix13644

[REG2.066] Issue 13644 - ICE with foreach over array of Tuples