Fix Overlay stop on exit:

The stop sequence for Overlay had a race condition where autoconnect could
be called after close_all, resulting in a hang on exit. This resolves the
problem by putting the close and timer operations on a strand:
* Rename some Overlay members
* Put close on strand and tidy up members
* Use completion handler instead of coroutine for timer

Also changes PeerFinder to use the App `io_service`

Reviewers: @donovanhide, @nbougalis

Is the lambda required? Equivalent to:
cond_.wait (lock, list_.empty());