subclass FiniteStateAutomaton from LabeledDiGraph

instead of LabeledStateDiGraph,
use super to call __init__
make FiniteStateAutomaton.accepting a property
rm LabeledTransitions, keep only add_labeled_adj, find, _breaks_determinism

moving them to class Transitions.

- LabeledTransitions method replacements:
  - __call__ -> Transitions.__call__
  - remove_labeled -> Transitions.remove
  - add_labeled -> Transitions.add, wraps: LabeledDiGraph.add_edge
  - add_labeled_from -> Transitions.add_from, wraps: LabeledDiGraph.add_edge

- compeletely deleted methods:
  - label (instead remove the unlabeled yourself, then add a new, labeled edge)
  - relabel (instead remove it yourself using attr_dict to identify it, then add the new one)
  - _check_sublabeling (was defunct, a replacement may be introduced in the future as a LabeledDiGraph method)

Comments on changes implied by this:

Raise exception if states do not already exist.

Raise exception if unlabeled edge between same nodes exists.

Log warning and do nothing if same labeled transition already exists, unlike optionally warning otherwise raising exception in past implementation.

Raise exception for inadmissible Values of typed edge attribute keys (cannot be turned off).
Optionally allow untyped edge attribute keys.

Previously a label referred to a set of sub labels. Simplify by using "label" in place of "sublabel", so a state or edge is annotated by one or more labels (equiv. labeling functions).

Only dictionaries used for managing labels from now on, lists and ordering can only cause trouble, because they are implicit, not explicit mappings in case the keys are not integers, so they are as bad as using global variables.

Some of these changes were planned in:
	b2ef42b032f148c60e4c5ecba3d0c05f62e2eedc
new: LabeledDiGraph.remove_labeled_edge, .remove_labeled_edges

to remove edges identifying them by attr_dict (labels), instead of key (as done in networkx), because each key-edge dict g[u][v] is a bijection in LabeledDiGraph.

The names chosen to leave remove_edge, remove_edges_from untouched, for users that may want to still use them.
rewrite Transitions.remove, .remove_from

to wrap LabeledDiGraph.remove_labeled_edge, .remove_labeled_edges, respectively.
replace LabeledTransitions by Transitions in LabeledStateDiGraph
extract to LabeledDiGraph._update_attr_dict_with_attr
improve docstrings of LabeledDiGraph
replace LabeledStates -> States, LabeledTransitions -> Transitions

in LabeledDiGraph
rm args max_outdegree_per_label, mutable of LabeledDigraph.__init__
new: States.__getitem__ and other small improvements
mv code around
bugfix: forward arg check in LabeledDiGraph.add_nodes_from