Improve constructing Walks (loops and invalid ones)

- [x] Support loop Walks
- [x] Checks for trying to construct Cycles from invalid predecessor maps
- [x] 100% coverage
- [x] Documentation / Changelog