detail::Array에 대한 함수 테이블 변경

1. Assign 함수 포인터 제거
2. MaxSize 함수 포인터 추가
3. Capacity 함수 포인터 추가
4. Reserve 함수 포인터 추가
5. ArrayImpl과 StringImpl 에 해당 함수 구현

refs #4
Array에 std::vector 메소드 구현

1. Array에 std::vector의 메소드 구현 (emplace, get_allocator 및
std::initializer_list 관련 메소드
제외)

refs #4
scenario::equal 오동작 수정

1. scenario::equal에서 두 iterator의 범위가 다를경우 비교가 정상적으로 이뤄지지 않는 문제 해결
Array::insert() 개선

1. inline iterator insert(const_iterator position, InputItor first,
InputItor last) 구현 개선

refs #4
Array::difference_type 관련 코드 수정

1. Array::difference_type을 int64_t 로 재정의
2. Array::insert()에 관련 코드에 대한 캐스팅 수정
Array 생성자에 explicit 키워드 추가

1. Array(detail::Array<T>*) 생성자에 explicit 키워드 추가

refs #4
Array::assign() 오동작 수정

1. Array::assign() 오동작 수정
2. template<typename Type> inline Array& operator=(const Array<Type>&
rhs) 수정
3. inline void assign(size_type count, const T& value) 개선

refs #4
Array::insert() 오동작 수정

1. inline iterator insert(const_iterator position, size_type count,
const T& value) 잘못된 이동연산 수정
2. assign() 오동작 수정

refs #4
String에 std::string 메소드 구현

1. String에 std::string 메소드 구현
2. detail::StringImp의 유니코드 변환 코드를 StringUtil로 이동

refs #4