add list of struct testcase in container test
protocol refines.

1. use dict instead of object to accelerate performance
2. expose pack/unpack funcs from cython binary protocol
seperate read_struct from read_val

the previous tries to use dict, but it now working as expected.
this should fix it. now avoid the top level obj recreation and should
benefit the performance.
benchmark suit redo, and add a result rst file.
change organization name, fix typo. fixed #4
refine rpc test. terminate server in `finally`.

exception may cause the test suit to be blocked.
add `__init__` method generator. enjoy speed boost.

will update benchmark result later.
add metaclass compat for py2

code borrowed directly from six package
revert to python binary in test_container.

cython extension was not prefered in normal tests. cause c extension
need re-compile after every changes, while python code do not.
mv type generated cls to final step.

now with metaclass, the default_spec needs to be there at creation
update addressbook.py demo, add default_spec.

reflect the recent changes
fix bug when default_spec is empty
refine TExceptions code