C++ requires that pointers point to sufficiently well aligned addresses.
getEmptyKey() and getTombstoneKey() would cast -1 and -2 to arbitrary
pointer types which would violate this requirement.
In an ideal world, we would query the alignment of the pointee type;
however, the pointee type might be incomplete (this is often the case in
LLVM/Clang). Instead, assume that no type is more aligned than 16383
bytes.