New recursive algorithm for graph layout
Clean up GraphViewer code