Completed initial implementation of Logix PLC round-trip
o EtherNet/IP Register works
o Changed cpppo.dfa locking to blocking, so that the same parser may be
  used by different threads, and properly serializes.  This is NOT safe,
  if a pair of cpppo.dfa instances appears in multiple different
  machines, in different order (deadlock).  This is preventable by
  convention: do not include the same cpppo.dfa instance in multiple
  machines.
o Removed unnecessary heirarchy (eg enip.header., enip.encapsulated.)
o Added enip.device.Message_Router Object which manages EtherNet/IP
o Revered enip.main.enip_srv's enip_process target function to
  consume data.request and produce data.response, and return True
  on session continuation.
o Removed duplicate parsing of EtherNet/IP header from enip.CIP
o Renamed enip.parser.logix to Tag, to not interfere with newly added
  enip.logix module, implementing a small simulated subset of a Logix
  PLC's CIP Object model and API.
o Added SO_REUSEPORT to allow quick restarting of services.