Update the swift code to use the split timeouts for receive and read.

Add a read timeout similar to the nifty code. There are now two
timeouts: the receive timeout which is the overall time that a client
is willing to wait for a response and the read timeout which is the
maximum time that the client will wait for the server to make
progress.