Complete refactor with custom svg and immutability.

 - The graph is now an immutable data structure. This lets us
   do nice things with drag+drop.
 - Now use interact.js as drag and drop and got rid of jsPlumb.