remove unused code
do not marshal buffers as strings.

Some objects implements [old buffer
protocol](http://docs.python.org/c-api/objbuffer.html) e.g. numpy.array.
marshal dump them as strings and it becomes strings at marshal.load.

This commit use pickle for this kind of objects to work around.
Merge pull request #1 from hongqn/buffer-marshal

do not marshal buffers as strings.
get options from environ
bug fix
add unitest for ketama
close mc before fork()
revert test for ketama
set last_error in get_multi()
get_last_strerror()
bugfix: closing connection in child cause broken pipe in parent.
disable atfork
ignore the generated .c file
support unicode value
Merge pull request #2 from hongqn/unicode

Support unicode values
fix #3: unit test fail with error code of get_multi
Merge branch 'master' of github-ent.intra.douban.com:davies/python-libmemcached
Merge branch 'master' of http://github-ent.intra.douban.com/davies/python-libmemcached
do not allow mc to be used in different threads, or processes.

Otherwise the communication in the socket will be confused.
Merge pull request #4 from hongqn/check-thread

do not allow mc to be used in different threads, or processes.