update bigcode

* submodules/bigcode 53b1a99...431fd61 (15):
  > Merge into master from pull request #34: Add support for user-supplied key construction function. (https://github.com/floodlight/bigcode/pull/34)
  > Merge into master from pull request #33: ORC Module Import (https://github.com/floodlight/bigcode/pull/33)
  > Merge branch 'master' of github.com:floodlight/bigcode
  > Remove uCLI support.
  > Merge into master from pull request #31: PPE: add unused attribute to a few functions (https://github.com/floodlight/bigcode/pull/31)
  > Merge into master from pull request #30: bighash: fix pedantic warnings (https://github.com/floodlight/bigcode/pull/30)
  > Merge into master from pull request #29: Allow hexadecimal integer formats.  (https://github.com/floodlight/bigcode/pull/29)
  > Merge into master from pull request #24: bighash: add optional automatic bucket growth (https://github.com/floodlight/bigcode/pull/24)
  > Merge into master from pull request #28: Add file parsing support. (https://github.com/floodlight/bigcode/pull/28)
  > Merge into master from pull request #27: cjson_util module (https://github.com/floodlight/bigcode/pull/27)
  > Merge into master from pull request #26: Allow NULL to specify no formatting for pop-scope. (https://github.com/floodlight/bigcode/pull/26)
  > Merge into master from pull request #25: iof_init() enhancement (https://github.com/floodlight/bigcode/pull/25)
  > Merge into master from pull request #23: add bloom_filter module (https://github.com/floodlight/bigcode/pull/23)
  > Merge into master from pull request #21: PIMU: Change pps from uint32_t to double. (https://github.com/floodlight/bigcode/pull/21)
  > Merge into master from pull request #22: incremental murmur hash (https://github.com/floodlight/bigcode/pull/22)
OFStateManager: replace strict match hashtable with BigHash
OFStateManager: replace flow id hashtable with BigHash

The ft_config becomes empty, so it can go away.
OFStateManager: replace gentable key hashtable with BigHash
OFStateManager: use autogrow for group hashtable
Merge remote-tracking branch 'origin/master' into bighash

Conflicts:
	modules/OFStateManager/module/src/ft.c
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 #144:
Convert OFStateManager hashtables to BigHash (https://github.com/floodlight/indigo/pull/144)
Merge into master from pull request #149:
minimatch: bugfixes for second bitmap word (https://github.com/floodlight/indigo/pull/149)
OFStateManager: new group API

A flaw in the OpenFlow group model is the lack of a table ID to distinguish
different kinds of groups (group_type doesn't count, it has its own semantics).
For example, LAG and ECMP groups will be handled by completely different code
in Forwarding and have very different types of actions allowed in the buckets.

The approach we've taken is to use the upper 8 bits of the group ID as a table
ID. So far the code to dispatch to different implementations based on the table
ID has lived in the Forwarding module, but as with flows this is applicable to
all Indigo users and so it makes sense to move this up to OFStateManager.

The new group API is very similar to the flowtable and gentable APIs. We'll
continue to support the old group APIs for a while until all clients have been
ported over.
OFStateManager: add API to acquire/release group references

When Forwarding receives a flow-mod (or group-mod) that references a group, it
should use these functions to look up the group by ID. The acquire function
increments a refcount on the group to ensure it won't go away while flows are
pointing to it.
OFStateManager: convert duplicate group-adds to modifies

This is in violation of the spec, but it makes pushing groups easier for the
controller. This behavior matches the flowtable and gentables.
OFStateManager: add API to lookup group without taking a refcount

This is useful for checking whether a group exists when validating a new flow.
OFStateManager: add weak symbols for old group APIs

These functions are now optional if Forwarding uses the new API exclusively.