Make timeouts work for SPDY.

We can't use the regular socket timeouts because the
socket is shared. Moving it to the application level
is more complicated, but it allows different streams
to set timeouts independently.
Merge pull request #75 from square/jwilson/timeouts

Make timeouts work for SPDY.