Adds generic graph javascript module

I created a reusable graph module / class which supports topological sorting and grouping of nodes.

I integrated this with the core ui to reorder all jobs by topological index on dag load. This ordering makes complex job graphs much easier to interpret within the chord diagram as execution order more closely matches topo ordering than original order reported from backend.

Check out the large demo graph for an example.