Generic open addressing hash table. The table-related functions in this module expect a sz argument specifying the table's element size. This value must remain consistent across all function calls referencing the table. The hash value 0 is reserved as a sentinel value for use by the hash table implementation, and must not be used.