[WIP] Add LayoutableInterface + implementation for Graph

TODO:
- [ ] Deprecate `GraphViz::setLayoutBy()`
- [ ] Documentation
- [ ] Tests
- [ ] Changelog