Intersection and Cartesian product changed

Intersection now constructs the FSM with computes (accepts) the intersection of the languages of the given FSM (earlier: in cartesian_product).
Cartesian product does the same for an automaton. But for transducers, it returns a transducer which computes the pairs of output labels of the two given transducers.
Documentation corrected

An error in the documentation of cartesian_product is corrected now.
Fixed spacing at EOL
Typos, Commas, Spaces, one minor error corrected
Reverted unnecessary removal of r""" in 5c9ff557abd7b1ec0cb421469bd4a9758ba7bbd4
Documentation corrected
Transducer.cartesian_product: enhanced docstring
FiniteStateMachine.cartesian_product: Included transitions into docstring
minor changes in docstrings
FSMMachine.intersection: documentation for transducers with epsilon transitions extended
FiniteStateMachine.intersection: the input is checked whether there are epsilon-transitions

If there are epsilon-transitions, then an exception is throw. There are new functions .has_epsilon_transitions to check whether there is one or not.
FiniteStateMachine.intersection: documentation on epsilon-transitions extended
Transducer.cartesian_product: output changed to a list of pairs

The output of a transition in the cartesian product is now a list of pairs instead of a pair of lists. Thus the output alphabet of the result is a subset of the cartesian product of the original output alphabets.
PEP8 in Transducer.cartesian_product
Alternative implementation for Transducer.cartesian_product
FiniteStateMachine.intersection: changed to methods of the classes Transducer and Automaton
Routines has_epsilon_transitions moved to separate branch
Automaton.intersection: example with epsilon-transition corrected
Automaton.intersection: Error message corrected
Merge branch 'fsm/cartesian-product-intersection' of https://www.math.aau.at/git/sage into fsm/cartesian-product-intersection