traverse: relax requirements for traversal types
Created by: kortschak
Please take a look.
This is exploratory and related to some work that was done/discussed a long time ago in gonum/graph but essentially dropped. I think this package probably warrants this change given how generally useful graph traversal is.