Parameterize NA sentinel for hashtables
xref https://github.com/pandas-dev/pandas/pull/19938. There's I'm abusing the fact that the Int64HashTable class treats iNaT as a missing value. It'd be cleaner to just pass the Categorical's codes with a flag saying that `-1` is the missing value marker.

IIUC, the missing value condition is baked into the class definition.

```
{{py:

# name, dtype, null_condition, float_group
dtypes = [('Float64', 'float64', 'val != val', True),
          ('UInt64', 'uint64', 'False', False),
          ('Int64', 'int64', 'val == iNaT', False)]
```

I'm not familiar enough with Cython to know how that could be made a parameter. Possibly an optional scalar value. If that value is not None check if `val == na_sentinel`. Else, use the condition from the class definition?