Optimizations

- track total terms size and init with capacity + load factor to
prevent rehashing

- calculate hashcode as terms are added