Add support for msgpack Extended types

I added support for extended types in msgpack.
It is now possible to extend the Packer and Unpacker classes to handle data types which are not natively supported (for example, look in test_extension.py for how to support array.array).
This is superior to using object_hook because it uses msgpack native natives and it's more efficient.

Support for extended types also brings some interesting possibilities: for example, in my experimental msgpack-pypy I show how to (de)serialize lists of ints and floats very fast, 8x faster than plain msgpack on my benchmarks (this was the whole reason why I started doing this :))
https://bitbucket.org/antocuni/msgpack-pypy/src/default/msgpack_pypy.py