Value의 swap 기능 수정 및 메소드 이름변 경

1. Value의 swap을 std::swap()을 이용하여 사용할 수 있도로 수정
2. Value의 몇몇 메소드 이름 변경
3. Value의 유효성을 명식적으로 검사하는 메소드 추가

refs #4
FunctionType::Parameter를 std::pair<String, Value> 로 변경

1. FunctionType::Parameter를 std::pair<String, Value> 로 변경
2. FunctionType에 swap() 추가
3. move semantic 에 관한 메소드들 추가

refs #4
Structure 수정

1. Structure에 swap() 수정 
2. Structure::Field 수정
3. Strucutre 필드 접근을 위한 메소드 수정

refs #4
ErrorCode 메소드 이름 변경 및 코드 정리

1. ErrorCode 주요 메소드 이름 변경
2. ErrorCode 코드 정리

refs #4
Url 코드 정리

1. Url의 멤버 접근 메소드 수정하여, 데이터를 수정할 수 있도록 변경
2. Url의 메소드 이름 변경

refs #4
SHA-1에 대한 구현 추가

1. SHA-1 구현 클래스인 Sha1 작성

refs #4
Uuid 클래스에서 생성 부분 분리

1. Uuid 클래스에서 생성 부분 분리
2. Uuid 버전 4를 생성하는 UuidRandomGenerator 작성

refs #4
Sha1::Digest 타입 수정

1. Sha1::Digest 타입 수정

refs #4
Sha1UuidGenerator 작성

1. uuid 버전 5를 생성하는 Sha1UuidGenerator 작성

refs #4
바이너리 호환성을 갖는 클래스의 uuid 계산을 SHA-1 을 사용하도록 수정

1. 바이너리 호환성을 갖는 클래스에 UUID 계산을 SHA-1을 이용하여 계산하도록 수정하여 UUID가 컴파일 타임에서
결정되도록 함

refs #4
Merge branch 'clean_up_code' into upgrade_binary_compatibility