* Rewrite node placement and edge routing parts of graph layout code * Document the high level structure of layout algorithm * Tighter layout and less edge crossings * Better worst case memory and CPU usage