Encapsulate rendering into dedicated step

Previously the maze generation and rendering were interleaved.
Introduce dedicated renderer