Refactor renderer

* Create a renderer with separate backend implementation
* Moved RendererWidget to QtRendererBackend
* Templates rock!