Fix issue #183 (CPU 100% usage)
Fix issue #183 (CPU 100% usage)

As per http://docs.python.org/2/howto/sockets.html#using-a-socket it's
possible that a socket recv() call returns 0 bytes if the remote closes
the connection. In that case, recv() does not obey settimeout(): it
just doesn't block and returns zero bytes immediately, which in this
case results in an infinite loop if the transmission was incomplete.

mailchuck/PyBitmessage,debguy0x/PyBitmessage,hb9kns/PyBitmessage,domob1812/PyBitmessage,domob1812/PyBitmessage,debguy0x/PyBitmessage,timothyparez/PyBitmessage,timothyparez/PyBitmessage,krytarowski/PyBitmessage,hb9kns/PyBitmessage,gnu3ra/PyBitmessage,mailchuck/PyBitmessage,Atheros1/PyBitmessage,lightrabbit/PyBitmessage,Atheros1/PyBitmessage,kyucrane/PyBitmessage,krytarowski/PyBitmessage,lightrabbit/PyBitmessage,debguy0x/PyBitmessage,bmng-dev/PyBitmessage,Atheros1/PyBitmessage,xeddmc/PyBitmessage,Erkan-Yilmaz/PyBitmessage,lightrabbit/PyBitmessage,lightrabbit/PyBitmessage,rzr/PyBitmessage,hb9kns/PyBitmessage,JosephGoulden/PyBitmessageF2F,torifier/PyBitmessage,torifier/PyBitmessage,gnu3ra/PyBitmessage,mailchuck/PyBitmessage,Atheros1/PyBitmessage,JosephGoulden/PyBitmessageF2F,metamarcdw/PyBitmessage-I2P,Erkan-Yilmaz/PyBitmessage,bmng-dev/PyBitmessage,rzr/PyBitmessage,tigerbunny/bitmessage,kyucrane/PyBitmessage,tigerbunny/bitmessage,metamarcdw/PyBitmessage-I2P,debguy0x/PyBitmessage,bmng-dev/PyBitmessage,tigerbunny/bitmessage,timothyparez/PyBitmessage,torifier/PyBitmessage,hb9kns/PyBitmessage,timothyparez/PyBitmessage,xeddmc/PyBitmessage,mailchuck/PyBitmessage,torifier/PyBitmessage,domob1812/PyBitmessage