copyright updated (years, GPL3, authors), updated Acknowledgment
updated AUTHOR-section
state-hooks explained
rewrite first few examples to avoid FSMState/FSMTransition
Corrected a few typos
finite_state_machine: added a few internal hyperlinks to documentation
FSMState: Documentation for attribute is_initial added
finite_state_machine.py: Started TOC for documentation
finite_state_machine.FSMState: New method fully_equal

finite_state_machine.FSMState.__eq__ only compares labels of states,
but not their other attributes such as is_initial, is_final, final_word_out,
word_out, color.

The reason is that states have to be hashable and that their hash only depends on the label --- therefore, states with the same labels have to be equal.

This is no problem as long as states of the same finite state machine are compared. When comparing two finite state machines, this distinction matters.

Therefore, a new method FSMState.fully_equal is introduced and used in
FiniteStateMachine.__eq__ .
TOC now lists all methods and attributes
document attribute on_duplicate_transition
fully_eq: compare color
Merge branch 'fsm/is_monochromatic' into t/16588/fsm/states_equality

* fsm/is_monochromatic:
  added is_monochromatic
  used equal in existing code (1 occurrence found, maybe there are more)
  renamed check_equal to equal
  added another doctest (check length of elements)
  added function check_equal
  one spacing, one ``...`` in docu
  Extend Transducer.cartesian_product to products of more than two machines
  Code cleanup in FiniteStateMachine.product_FiniteStateMachine
  Extend finite_state_machine.product_FiniteStateMachine to products of more than two machines
fully_equal has now a compare_color flag
corrected handling of compare_color
== for finite state machines now handle comparing of colors better (monochromatic finite state machines are considered equal)
documented ==-function for state colors (monochromatic)
added doctest to show behavior when states have colors
inserted/removed spacings and empty lines
Minor correction in docstring (``...``)