Let user create draggable control points

@andreit I've found that with d3, making small DOM changes scattered around the codebase makes controlling what's going on in the UI difficult. What works better is to make changes to the data (or probably the scope in this case), then do a complete repaint so the view represents the new state of the data. So instead of the class changes we are doing here, we should maybe do a complete repaint, and have the repaint control what components appear selected or unselected.

Thoughts?

Thoughts/ideas on how to do this?