new: LabeledDiGraph

which will gradually replaced LabeledStateDiGraph and offer a cleaner, more direct interface to networkx.MultiDiGraph
rm LabeledStateDiGraph methods that won't be implemented soon
mv code around
override add_node, add_nodes_from, add_edge
warn when adding existing node or labeled edge

The warning is logged for node, not visible to the user.
This will enable merging States with LabeledStates and replacing:

- LabeledStates.label -> States.add -w-> LabeledDiGraph.add_node
- LabeledStates.labels -> States.add_from -w-> LabeledDiGraph.add_nodes_from
- LabeledStates.label_of -> States[state] -w-> LabeledDiGraph.node[state]

and merging Transitions with LabeledTransitions and replacing:

- LabeledTransitions.add_labeled -> Transitions.add -w-> LabeledDiGraph.add_edge
- LabeledTransitions.add_labeled_from -> Transitions.add_from -w-> LabeledDiGraph.add_edges_from
- LabeledTransitions.remove_labeled -> Transitions.remove

where -w-> stands for "wraps", and remove:

- LabeledStates.label, .labels, .label_of
- LabeledTransitions.label, .relabel, .add_labeled, .add_labeled_from
rm not implemented and Transitions.between (to be replaced by Transitions.find)
change LabeledStates.find and LabeledTransitions.find signatures

rm argument: as_dict, only dict returned, tuples not available
rename argument: desired_label -> with_attr_dict
new argument: **attr_dict that updates with_attr_dict, as is done in networkx.add_node

update code wherever the above are used.

So now one can pass key-value pairs, e.g.
	ts.transitions.find(atomic_propositions={'p', 'q'})
subclass FTS, OpenFTS from LabeledStateDiGraph
support multiple env_actions, sys_actions types in synth
Merge branch 'switched' into labeledgraphs

Conflicts:
	tests/transys_test.py
paste LabeledDiGraph test which was rm during 5a3b4819b8a97d46d750fca8b3a7cbc8c797ee2f
update imports for LabeledDiGraph test
rm Transitions.between test, because method was deleted
update test for LabeledStates.find to keyword rename: desired_label -> with_attr_dict

add same test for node attribute dict keys now recognized as keyword arguments by LabeledStates.find
Merge branch 'switched' of https://github.com/tulip-control/tulip-control into labeledgraphs
docstring for _conj_action
rename label -> actions_dict for clarity
take conjunctions of multiple env,sys actions guarding transitions

and unit test
override __init__, __str__, update, setdefault in TypedDict

because they do not call __setitem__ in the standard library implementation of dict
mv TypedDict from labeled_graphs to mathset