improve graph controls

Graphs are moved into their own angular directive that encapsulates all the graphy stuff, including controls. This makes it super easy to just create a `<graph-panel>` html element and then magic happens and graphs appear!