Add timeouts to ensure that the list_objects FSM eventually stops.

Since this FSM has no timeout and the remote index FSM has no timeout
by default, we can get stuck with both FSMs partially completed and
holding on to a lot of memory.

This fix adds a timeout to the remote FSM so it should terminate in a
timely fashion, but adds a timeout to the connection request, just in
case the other end stops talking to us for some reason.