rm LabeledStates, keep only method find

by moving it to States.find

- Labeling is taken care of TypedDict in LabeledDiGraph, so at the root of the problem, not by intercepting all possible set/get paths.

- add_node is used to label an existing state, as networkx does, so labeling a state that doesn't exist adds it and labels it, instead of raising an Exception, and warns if it exists.

- LabeledStates method replacements:
  
    - label -> States.add, wraps: LabeledDiGraph.add_node
    - labels -> States.add_from, wraps: LabeledDigraph.add_nodes_from

- completely deleted methods convenience methods:
    - labeled_with: call find instead and use list comprehension yourself, explicit better than implicit.
    - label_of: access the label directly using States.__getitem__ which will be added to wrap LabeledDiGraph.node.__getitem__

doctoring information is either redundant, because LabeledDiGraph and networks suffice, or outdated.

Mutable states and ordering of states are features under removal.
labeled_graphs will no more be aware of accepting states, only automata.
More comments on these will follow on later changesets.

These changes were planned in:
	b2ef42b032f148c60e4c5ecba3d0c05f62e2eedc
improve SubSet, protect its superset from changing

this will allow returning initial, current or other state subsets to the user from property getters, without fear that the user can corrupt the superset, they can only add/remove states, which will be successful only if those states are valid (i.e., exist in the graph).

new __init__ optional argument iterable allows initializing the similarly to a set.

rm method SubSet.has_superset, in favor of directly checking:
  s = SubSet(big)
  s.superset is big

more elegant @property used instead of getter, no setter any more available to ensure the superset remains fixed after instantiation.
extensive refactoring of States

Mutable states no more supported. Using mutable states as nodes is restrictive in case one would like multiple nodes to have the same value, which can happen in applications that mutable states are needed (e.g., graph rewriting). If mutable states are needed, cleaner solution to just use a MutableDict class in networkx graph classes. The recommended solution is to use int nodes, annotate them with mutable information and write the graph operators for the application appropriately.

Ordered states have been deprecated and disabled a long time ago, now removed completely.

Both initial and current states become SubSets of States, with much cleaner and safer property-based design using the improved SubSet class, which now protects its superset from being changed.

Simpler wrapping of LabeledDiGraph implemented, enabled by the removal of support for mutable states, state ordering, and the implementation of label checking LabeledDiGraph using TypedDict.

Completely delete: __eq__, __ne__, lt__, __gt__, __le__, __ge__, because they are never used and just bloat the design. For comparisons, get the states, instantiate a builtin set with them and do the comparisons. If efficiency is needed, implement a loop calling __contain__ yourself to make it explicitly clear.

Completely delete: rename (use nx.relabel_nodes directly), check (replaced by using SubSet for both initial and current state properties)

Btw the above allow avoiding to use __setattr__ which admittedly is inelegant design.

Some of these changes were planned in:
	b2ef42b032f148c60e4c5ecba3d0c05f62e2eedc