Map의 Swap() 비정상 도작 수정

1. Map의 Swap()이 제기능을 하지 않아, 이를 수정함
Map 구조 변경

1. detail::Map을 상속외에는 생성 불가 능하도록 변경
2. scenario::Map에 operator[] 추가
Array 구조 변경

1. Array의 기능을 detail::Array로 옮김
2. Array를 detail::Array의 래퍼 클래스의 역활을 하도록 구조 변경
3. Array에 대한 ValuePlaceholderImpl 특수화 재작성

refs #4
Array 수정

1. Array_forward.h 에 detail::Array, detail::ArrayImpl 전방선언 추가
2. detail::Array의 선언 방법이 struct 이던것을 class로 변경
3. Array의 생성자에서 detail::Array를 상속한 타입에 대해서 호출되지 않는 문제 해결

refs #4
String 구조 변경

1. 변경된 Array에 따라 String도 같은 구조로 변경

refs #4
변경된 String에 대한 내용을 ErrorCode에 반영

1. String의 변경으로 인한 수정사항 ErrorCode에 반영
2. UNKNOWN_ERROR 상수 등록
3. 몇몇 메소드 inline 키워드 추가
4. ErrorCode.h 마지막에 String.h 참조 추가
5. GetMessageFunction에 대한 함수 서명 변경
6. GetMessage_() -> GetMessage()

refs #4
detail::Array 비교 연산자 추가

1. detail::Array 비교 연산자 추가
2. Array의 비교연산자를 간략화

refs #4
Value에 Swap() 메소드 추가

1. Value에 Swap() 메소드 추가

refs #4
Array 생성자 수정

1. detail::Array의 상속 타입에 대한 포인터 파라미터를 Array(detail::Array<T>* pArray)
생성자에서 처리하지 못하는 문제 해결

refs #4
Array의 하위 재정의 타입 수정

1. Array::const_reference 가 정상적이지 않은 문제 해결
2. 차후 이런 문제를 방지하고자 다른 타입에 대한 재정의도 수정

refs #4
바이너리 호환성을 갖도록 Structure 수정

1. 바이너리 호환성을 갖도록 Structure 수정

refs #4
Merge branch 'change_structure_of_binary_compatible_type' into change_url_to_compatible