specialized layer-2 hashtable implementation

Reviewer: @vishnu-emmadi

Upcoming changes will require looking up small bits of metadata for the source
and destination MACs of each packet, which will feed into the flowtable match.
This pull request implements a hashtable mapping from MAC/VID to the associated
metadata. Because the keys and values are so small (16 bytes total) this uses a
different hashtable implementation than the usual one with separate chaining.