[WIP] Add consistent Layout + interface

This PR aims to streamline accessing / setting layout attributes for each of Graph, Vertex and Edge\Base.

* [x] Move GraphViz to Renderer\GraphViz (to be discussed)
* [x] Rework Layoutable to new Renderer\Layout, simplify its interface
* [x] Add Renderer\LayoutAggregate interface for every class that has a Renderer\Layout attached
* [x] Add Graph::getLayoutVertexDefault() and Graph::getLayoutEdgeDefault() and remove Renderer\GraphViz::setLayout()
* [x] 100% test coverage
* [ ] Documentation
* [ ] Changelog

[This is a resurrection of #22 which was closed inadvertently]