Add TimeoutReceiver to allow recv()ing with a timeout

Not sure if this is the best way to do this, or if there is already a way that I missed, but it comes in very handy when you want to avoid blocking forever.