Move the while loop inside the try block

Want the greenlet to stop looping in the try block if something calls
break or an exception is raised, not keep going
Update to recommended gevent 1.0 server behavior
Try using gevent Timeout to handle dead clients
May want to register signal handlers, need module