Rewrite TypeLookupTable.

Improve bit-packing of the data to store twice as many bits
of the hash as previously. Check for bucket mismatch after
the first partial hash conflict (previous comments alluded
to the bucket check but it was not implemented).

Avoid an unnecessary unique_ptr<> indirection by making the
TypeLookupTable moveable.

Test: Rely on Treehugger.
Bug: 79514364
Change-Id: I9fa6f712b037a6e6904d09c88670966486f56621
7 files changed