IO.select only block for readability; introduce timeout

Don't block for a write_socket; instead, wait for #timeout seconds for read_socket to become readable before bailing out.

This begins to address an issue https://github.com/nomad/houston/issues/72 which is common with and documented within https://github.com/grocer/grocer/issues/14 and https://github.com/grocer/grocer/pull/43 . It introduces a performance penalty.

I realize you may have had other plans for `APN_TIMEOUT`; that part is just a guess.