Add wait_future()
Add timeout to Resolver
wait_future(): allow seconds to be None for cleaner calls
Add iostream connect timeout.
Refactor timeout logic into iostream.
Finish implementation of connection timeouts.