First draft of pond-finding function

- Doctests for homomorphism, automorphism
- semi_infinite_end_points() now returns (terminal, initial) separately
- free_monoid_on_alphas() added to word