Rename Algorithm\Directed::isDirected()

* [x] Rename isDirected() to hasDirected()
* [x] Add new hasUndirected() and isMixed()
* [x] 100% coverage
* [ ] Documentation / changelog