OFConnectionManager: add generation count to indigo_cxn_id_t
OFConnectionManager: replace connection cookies with IDs

The connection ID now includes the same generation number the cookie did.
OFConnectionManager: add pause/resume APIs

OFStateManager will use these interfaces to pause reading messages from a
connection while a long-running task is in flight.
OFStateManager: pause connection while handling long-running tasks

Pausing the connection also prevents later barrier requests from being handled,
so the barrier blockers are redundant.
OFConnectionManager: remove unused connection generation_id field
Merge into master from pull request #157:
Add generation ID to the connection ID, and pause reading messages during long-running tasks (https://github.com/floodlight/indigo/pull/157)
OFConnectionManager: add notifications for barriers

Some modules may wish to defer work until a barrier is received. This new
interface allows them to register to be notify when a (blocked) barrier arrives
on a connection. The module should then decide whether it holds a barrier
blocker on that connection, and if so finish its work and unblock the barrier.
minimatch: optimize minimatch_more_specific for empty query
OFStateManager: process multiple flowtable entries between calls to ind_soc_should_yield

ind_soc_should_yield() was taking 30% of CPU time in my benchmarks.
Merge into master from pull request #158:
OFConnectionManager: add notifications for barriers (https://github.com/floodlight/indigo/pull/158)
Merge into master from pull request #159:
Optimize flowtable iteration (https://github.com/floodlight/indigo/pull/159)
OFConnectionManager: add assertions for clang static analyzer

cxn_id_to_connection could return NULL, but it should not in these cases.
Merge into master from pull request #160:
OFConnectionManager: add assertions for clang static analyzer (https://github.com/floodlight/indigo/pull/160)
OFConnectionManager: improve log messages

This change attempts to improve the wording of log messages and add more useful
information. I also tweaked the log level of a couple of messages.

I added an assertion for the "inconsistent message length" case because it
means there's a bug in the switch.
Merge into master from pull request #161:
OFConnectionManager: improve log messages (https://github.com/floodlight/indigo/pull/161)
OFStateManager: handle error return from group deletion

I didn't see a better error code than the generic EPERM.
Merge into master from pull request #162:
OFStateManager: handle error return from group deletion (https://github.com/floodlight/indigo/pull/162)
OFConnectionManager: dont dereference null pointer when logging about a disconnected cxn
OFConnectionManager: cleanup unnecessary uses of connection ID

Every time we do a lookup from connection ID to connection_t *, we need to do a
NULL check. But whenever we do have a connection_t *, we know that it is valid
and active. These changes make the code more foolproof by using the pointer
when we already have it.
OFConnectionManager: handle EAGAIN from socket write

We usually detect socket buffer full from short writes. However, in the case we
exactly filled the socket buffer in the previous write, the next write will
return EAGAIN.

This could also be a "break" instead of checking against the output list, but I
did't think this rare case was worth another control flow path.