BUG: Patch rank() uint64 behavior
Adds `uint64` ranking functions to `algos.pyx` to allow for proper ranking with `uint64`.

Also introduces partial patch for `factorize()` by adding `uint64` hashtables and vectors for
usage. However, this patch is only partial because the larger bug of non-support for `uint64`
in `Index` has not been fixed (**UPDATE**: tackled in #14937):
~~~python
>>> from pandas import Index, np
>>> Index(np.array([2**63], dtype=np.uint64))
Int64Index([-9223372036854775808], dtype='int64')
~~~

Also patches a bug in `UInt64HashTable` from #14915 that had an erroneous null condition that was caught during testing and was hence removed.

Note there is overlap with #14934 with the implementation of `is_signed_integer_dtype` and `is_unsigned_integer_dtype`.  That PR should be merged before this one.
## [Current coverage](https://codecov.io/gh/pandas-dev/pandas/pull/14935?src=pr) is 84.66% (diff: 100%)
> Merging [#14935](https://codecov.io/gh/pandas-dev/pandas/pull/14935?src=pr) into [master](https://codecov.io/gh/pandas-dev/pandas/branch/master?src=pr) will increase coverage by **<.01%**

```diff
@@             master     #14935   diff @@
==========================================
  Files           144        144          
  Lines         51047      51056     +9   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          43216      43225     +9   
  Misses         7831       7831          
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [d7e8f31...2598cea](https://codecov.io/gh/pandas-dev/pandas/compare/d7e8f316dc7155252fa47ea23a3074d7d0197e54...2598ceaa753a146d23899d9e1ed48e7557ffce2d?src=pr) @jreback : With #14934 merged, this is ready to be merged now. @jreback : Addressed all comments, and both Appveyor and Travis are passing.  Ready to merge if there are no other concerns. lgtm. ping on green. @jreback : Everything is green now.  Ready to merge if there are no other concerns. thanks!