Indigo code cleanup

Reviewer: @harshin

These changes improve log messages, remove dead code, simplify error handling, and generally clean up the codebase.

Besides improved log messages there are only a couple of intended functional changes:
 - Flow-removed messages use XID 0 like other async messages.
 - Flow-removed messages use the new OFConnectionManager API to choose the OpenFlow version.

A nice logging feature is that we now show string descriptions of error codes instead of the integer value. Similar changes were made for connection IDs and LOCI object IDs.

No changes should be required to Forwarding or PortManager implementations. Tested using OFTest with LRI and IVS.