Description
Looking at the negative filters stuff, I realized that andNot() had no optimized implementation for HashDocSet, so I implemented that and union().
While I was in there, I did a re-analysis of hash collision rates and came up with a cool new hash method that goes directly into a linear scan and is hence simpler, faster, and has fewer collisions.