Remedy incorrect handling of no-input non-transitions
o Log Thread IDs to identify offending threads during testing
o New cpppo.remembering 'peekable', useful for formatting parse errors
o Allow targetting cpppo.decide as a transition, to implement optional
  transitions based on any feature of machine, source path or data.
o Make the concept of 'greedy' a constructor rather than run option.
o A state instance is now hashable (by its id()), instead of by content
  (since it is derived from dict)
o New cpppo.NonTerminal Exception is thrown if a dfa sub-machine is
  terminated in a non-terminal state.
o Both state and dfa instances will automatically detect no-progress
  loops, and terminate (with NonTerminal Exception, if non-terminal)
o A dfa is now always in a valid state (initial, by default)
o Added new logging.normal/detail levels, for regular output
o Corrected example EOF handling, supporting early termination
  of greedy dfa sub-machines, if they are in a terminal state
o Simplify EtherNet/IP parsers dfa due to better terminal handling
o Allow threading.Thread or multiprocessing.Process for bench tests