hindex: initial commit

The hindex is a datastructure that maps keys to sets of objects. It assumes
that the key is embedded in the object, which is a common pattern in our code.
It is efficient in CPU time, cache usage, and total memory consumption. The
intended use is for database-like "indexes" on particular fields within
objects.

The implementation is an open-addressed hashtable that uses Robin Hood hashing
and splits the hash and value arrays for better cache utilization.

The name comes from the openvswitch datastructure that serves a similar
purpose, but the implementation is not derived from it.
OFStateManager: replace flow_id hashtable with a hindex
OFStateManager: replace priority hashtable with a hindex
OFStateManager: replace match hashtable with a hindex
OFStateManager: cleanup dead code