Change the _lookup function to use Quadratic Probing.
The main strength is that we get a bit of locality (collision resolution looks quickly close to the location.) The main weakness is that we don't use the upper bits of the hash to induce divergence. So while we nicely handle collisions in neighboring buckets (Quadratic means their resolution chains will diverge), if two objects hash to the same bucket, their resolution chains are identical.