Enhance mechanisms for Connector
## 새로운 Connector 메커니즘 방안

![Image](https://github.com/dgmjs/dgmjs/assets/2884771/4f14c4ee-7b25-40a3-8cb5-32823609e53f)

### Connection Algorithm

- TLDraw와 유사한 방식
- 장점: 따로 connection point index 가 필요없다. 연결점이 도형 중심이든 도형 외곽선 위에 있느냐에 따라 같은 효과를 낸다.
- Box 도형으로 연결:
  1. 연결점은 End 도형 외곽선 내부의 한점이 된다.
  2. 연결점 실제 좌표라기 보다는 End 도형의 BoundingBox에서의 위치를 비율로 표현된다. 예): [0.5, 0.5] 는 박스의 중심점이 된다. End 도형의 크기에 따라 자동으로 변환된다. (앞숫자는 left 에서 width 비율 만큼의 거리, 뒷숫자는 top 에서 height 비율 만큼의 거리)
  3. Connector를 그릴 때에는 연결점을 향하는 선의 외곽선 접점까지만 그린다.
  4. Connector를 그릴 때, 외곽선에서의 살짝 공간(margin or gap)을 줄수 있다.
- Line 도형으로 연결: 
  1. 연결 지원 안함 (TLDraw, Excalidraw는 연결 안됨)
  2. Line 방향으로 접접을 연결. 접점이 없는 경우 Line 의 중점에 연결
  3. Line 에서 연결된 지점 (0~1 사이값)을 저장해서 그 지점으로 연결 (예: 연결 지점이 tail에서 부터 0.36 지점일 경우`tail/headAnchor`의 값을 `[0.36, 0.64]`로 표기) (합쳐서 1이 되도록 - 앞숫자는 tail 에서 거리, 뒷숫자는 head 에서 거리)

```ts
class Connector {
  head: Shape;
  headAnchor: number[]; // [0.5, 0.5]
  tail: Shape;
  tailAnchor: number[]; // [0.5, 0.5]
  path: number[][];
}

// reimplement adjust-route constraint
```


### Array of Connection Points (Connection Point Index)

- 특정 Connection Point 에 연결되는 기능을 빼고 싶다. (Connection Points 를 리턴하는 스크립트가 바뀌면 오류 가능성 있음)
- 또는, Connection Points Array 리턴된 좌표들은 그냥 Guide 역할만 할 수도 있다.

### TODOs

- [x] Update `Connector`
- [x] Update `adjustRoute` constraint
- [x] Update `ConnectorHandler`
- [x] Update `ConnectorReconnectControllers`
- [x] Remove unnecessary codes (routeType, findConnectionPoint, route utils, ...)

### Other notes

- Connection Point Array를 제거한다. (Shape's `getConnectionPoints()`)
- Routing 종류에서 Rectilinear를 빼고 싶다.
