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)