Let user create draggable control points

I think something like attaching uuids to DOM elements is better achieved using data attributes, for eg `data-uuid`. Then selecting this would look something like `.control-point[data-uuid="some-uuid"]`.

Maybe we should also move the connection uuid working out into a helper function so we aren't repeating ourselves in different places.