OFStateManager: add flowtable iterator

This iterator is safe to use with concurrent modification of the flowtable
because it puts itself on a list in the current flowtable entry. If an entry is
deleted it will advance all the iterators pointing to it.
OFStateManager: remove ft_query

This was only used by the unit test. Replaced in the test with a simple
function that counts the number of matches.
OFStateManager: change ft_first_match to ft_strict_match

The only non-strict user of ft_first_match was overlap checking, which I've
converted to a simple linear scan.
OFStateManager: remove unused priority flowtable buckets
OFStateManager: change flowtable match buckets to strict_match

This adds the priority to the hash input.

Also inlines the FT_MATCH_ITER macro and removes the redundant match
comparison.
OFStateManager: inline FT_FLOW_ID_ITER

Only used in one place.
OFStateManager: dynamically allocate flowtable

The goal is to remove unnecessary limits on flowtable size and reduce the
amount of allocated memory for a switch with few flows installed.
OFStateManager: fix memory leaks in unit test

Just to make valgrind more useful.
OFStateManager: remove max_entries flowtable config

The OFStateManager flowtable contains flows from all OpenFlow tables, so it
doesn't make much sense to enforce an arbitrary limit here. If a particular
table fills up then Forwarding will return an error.
OFStateManager: remove FT_FLOW_STATE_FREE

Not used anymore.
OFStateManager: remove flowtable checks for INDIGO_FLOW_ID_INVALID

Allocated flowtable entries are never invalid.
OFStateManager: add consistency disclaimer to ft_iterator_init
OFStateManager utest: add test for flowtable iterator

Tests the iterator with concurrent mutations.
Merge into master from pull request #34:
Dynamic flowtable entry allocation (https://github.com/floodlight/indigo/pull/34)