Faster tile hashing - 40-60% performance improvement

Before:

```
scan road - z6 - z6 x 67,994 ops/sec ±1.84% (23 runs sampled)
scan road - z8 - z8 x 62,734 ops/sec ±1.20% (21 runs sampled)
scan road - z10 - z10 x 61,523 ops/sec ±1.90% (22 runs sampled)
scan road - z12 - z12 x 62,368 ops/sec ±3.32% (22 runs sampled)
scan road - z18 - z18 x 19,394 ops/sec ±1.64% (22 runs sampled)
scan polygon - z6 - z6 x 57,227 ops/sec ±1.74% (21 runs sampled)
scan polygon - z8 - z8 x 37,191 ops/sec ±4.55% (23 runs sampled)
scan polygon - z10 - z10 x 30,810 ops/sec ±1.54% (22 runs sampled)
scan polygon - z12 - z12 x 14,732 ops/sec ±2.23% (23 runs sampled)
scan polygon - z18 - z18 x 8.38 ops/sec ±2.11% (9 runs sampled)
scan russia - z6 - z6 x 808 ops/sec ±4.43% (21 runs sampled)
scan russia - z8 - z8 x 155 ops/sec ±1.69% (20 runs sampled)
scan russia - z10 - z10 x 9.91 ops/sec ±7.60% (10 runs sampled)
```

After:

```
scan road - z6 - z6 x 140,541 ops/sec ±1.45% (23 runs sampled)
scan road - z8 - z8 x 140,227 ops/sec ±1.36% (22 runs sampled)
scan road - z10 - z10 x 135,784 ops/sec ±2.02% (22 runs sampled)
scan road - z12 - z12 x 137,066 ops/sec ±1.55% (22 runs sampled)
scan road - z18 - z18 x 24,677 ops/sec ±4.87% (22 runs sampled)
scan polygon - z6 - z6 x 99,349 ops/sec ±1.53% (23 runs sampled)
scan polygon - z8 - z8 x 62,309 ops/sec ±1.49% (23 runs sampled)
scan polygon - z10 - z10 x 48,899 ops/sec ±1.70% (22 runs sampled)
scan polygon - z12 - z12 x 21,499 ops/sec ±2.24% (19 runs sampled)
scan polygon - z18 - z18 x 8.53 ops/sec ±2.38% (9 runs sampled)
scan russia - z6 - z6 x 1,120 ops/sec ±5.15% (23 runs sampled)
scan russia - z8 - z8 x 189 ops/sec ±1.30% (22 runs sampled)
scan russia - z10 - z10 x 14.85 ops/sec ±7.93% (12 runs sampled)
```