function copyWaypoint(waypoint) {
  return assign({}, waypoint);
}
Update connections waypoints according to the rules:
  1. Both source and target are moved/resized => move waypoints by the delta
  2. Only one of source and target is moved/resized => re-layout connection with moved start/end