Fix a rare segmentation fault in the groupcompress code.
When finding the location to insert an entry in the hash map, we start by going to the next hash bucket, and walking backwards to find the last empty entry. The last entry in the hash table intentionally points to just after the actual entry table, so that we have an 'upper bound'. However, if the last actual bucket was full, this could cause us to check to see if the 'sentinal' value pointed to NULL, which isn't valid. If the memory allocator did not allocate extra bytes after then end of the entry table, this would access invalid memory and segfault. The fix is to change the if check to evaluate whether the current pointer is in the current bucket before we check to see whether it is empty. (Note that the double check *should* be redundant.)