BUG: Prevent uint64 overflow in Series.unique
Introduces a `UInt64HashTable` class to hash `uint64` elements and prevent overflow in functions like `Series.unique`.

Closes #14721.
## [Current coverage](https://codecov.io/gh/pandas-dev/pandas/pull/14915?src=pr) is 84.65% (diff: 100%)
> Merging [#14915](https://codecov.io/gh/pandas-dev/pandas/pull/14915?src=pr) into [master](https://codecov.io/gh/pandas-dev/pandas/branch/master?src=pr) will increase coverage by **<.01%**

```diff
@@             master     #14915   diff @@
==========================================
  Files           144        144          
  Lines         51016      51020     +4   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          43184      43189     +5   
+ Misses         7832       7831     -1   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [3ccb501...380c580](https://codecov.io/gh/pandas-dev/pandas/compare/3ccb50131b698bccee21780c660a70bed87396d0...380c58041a2cf327b1cc2de71586707dbdf16129?src=pr) you will need to rebase after #14919. I moved a couple of things, and added a HashTable testing section.

Though what I would really like is to systematically add unit64 to as many places as we test other dtypes and see what breaks / falls out (can do in another PR). Then create issues for incompat places. what was the bug (from before I moved unique)? @jreback : The <a href="https://github.com/pandas-dev/pandas/pull/14915/files#diff-fafd7700903bc35b7e73b5e1fa65b6daR133">diff</a> explains it all.  We were smashing all integer types together into one hashtable, which does not work if you have `uint`. ok, lgtm. ping on green. @jreback : Sounds good.  I changed my mind about changing `pd.unique` in this PR.  `core.algorithms` is riddled with `uint64` bugs that need to be checked.  I'll tackle in a follow-up. > @jreback : Sounds good. I changed my mind about changing pd.unique in this PR. core.algorithms is riddled with uint64 bugs that need to be checked. I'll tackle in a follow-up.

totally fine. we can make a master issue of these if that is helpful. @jreback : Everything is green, so ready to merge if there are no other concerns. thanks!

as I said, ideally have an issue which greatly expands test coverage for uint64 (and just mark the tests that are failing (e.g. assert that they are failing or comment out)).

Then can come back around and fix.