Now running in 66% of the last release's time.

- Keeping hold of the previous hash table, and using that array if the
new value is a continuance of the last value.
- Allocations make the first search slower, but the following searches
happen exponentially faster.