Identify Eulerian and Hamiltonian paths/circuits (#703)

Identify Eulerian and Hamiltonian paths/circuits (#703)

Recognise trails that use every edge exactly once (Eulerian) or visit every vertex exactly once (Hamiltonian).