HIVE-142 포크&풀리퀘 기능 구현

포크(프로젝트 복사) 기능은 다음과 같이 구현했습니다.

* 유저/프로젝트/fork URL을 입력하면 현재 사용자가 해당 프로젝트를 Fork한 프로젝트 이미 있다면 그 프로젝트로 이동합니다.
* 없다면 새로 Fork 프로젝트를 생성합니다.
* 생성할 프로젝트 이름은 포크 하려는 프로젝트 이름과 같은데, 만약에 해당 이름으로 이미 다른 프로젝트가 있다면 "프로젝트-1" 이런식으로 프로젝트 이름 뒤에 접미사가 붙습니다. (이 로직은 Github을 참고했습니다.)
* Fork 프로젝트에서 또다시 Fork 버튼을 누르면 새로운 Fork 프로젝트가 생성됩니다.

풀리퀘(코드 보내기) 기능은 다음과 같이 구현했습니다.

* 포크 프로젝트에서 코드 보내기를 생성합니다.
* 코드 보내기를 생성할 때 필요한 정보는 "보내느 브랜치"와 "받을 브랜치"입니다.
* 코드를 받는 프로젝트에서는 "수락", "보류", "취소" 중 하나를 선택할 수 있습니다.
* view 화면에서 아직 처리되지 않은(OPEN) 코드 요청은 자동으로 merge가 가능한지 여부를 알려줍니다.
* 자동으로 merge가 가능한 코드 요청인 경우에만 "수락" 버튼을 보여줍니다.

앞으로 고려할 것 및 이슈

* 코드에 주석으로 달겠습니다.