update type.hpp, support std::tr1::unordered_map and std::tr1::unordered_set
Merge pull request #51 from xunzhang/master

update type.hpp
This patch fixes a type conversion warning in clang 5 when compiling for arm64 targets.

```
$ clang --version
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

In file included from /Users/drew/Dropbox/Code/caffeine-ios/ext/msgpack/src/msgpack/pack.h:120:
/Users/drew/Dropbox/Code/caffeine-ios/ext/msgpack/src/msgpack/pack_template.h:773:57: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
        msgpack_pack_append_buffer(x, (const unsigned char*)b, l);
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from /Users/drew/Dropbox/Code/caffeine-ios/ext/msgpack/src/objectc.c:19:
/Users/drew/Dropbox/Code/caffeine-ios/ext/msgpack/src/msgpack/pack.h:118:61: note: expanded from macro 'msgpack_pack_append_buffer'
        return (*(user)->callback)((user)->data, (const char*)buf, len)
                                                                   ^
1 warning generated.
```

This patch is provided under the Apache License version 2.
Replaced types of length from unsigned int to size_t.
Added bin and str families support.
Merge branch 'support_bin_and_str' into cxx_separate

Conflicts:
	src/msgpack/object.h
	src/msgpack/object.hpp
	src/msgpack/pack.hpp
	src/msgpack/type/string.hpp
	src/msgpack/unpack_define.h