use cython in binary protocol
move encode decode out of readstring
yah no need now
add exception to be raised in readI32.

when the client disconnect, server will still try a readMessageBegin,
which will issue a readI32 method call and cause TTransportException
with type END_OF_FILE raised.
We should handle that situation