minimatch: cover multiple bitmap words in the utest

The utest previously only used the first 12 bytes of the of_match_t. We have to
use very few bytes in order to limit the search space of the randomized utest -
otherwise we'd never generate matches that overlap, are more-specific, etc.

This change uses several hand-picked offsets instead of the first 12 bytes.
Some of these offsets are at bitmap word boundaries, and half are in the second
bitmap word. This allows the utest to catch bugs that only occur when the
second bitmap word is used.
minimatch: reset match field index for each bitmap word

When we finish with a bitmap word (bitmap_word == 0) we don't increment the
match field index by the number of bits remaining in the bitmap word, since
__builtin_ctz can't give us this information. We need to skip to the first
match field index of the new bitmap word.

minimatch_overlap didn't actually need this variable.
minimatch: remove empty bitmap word optimization in minimatch_more_specific

We still need to increment idx_a by the number of bits set in bitmap_a. We
could do this using __builtin_popcount, but since that's compiled to a call to
a library function that uses a lookup table it's not obviously faster than our
normal loop.
Merge into master from pull request #149:
minimatch: bugfixes for second bitmap word (https://github.com/floodlight/indigo/pull/149)