Move listener code App#setup => App#refresh_loop , closing connections.

Creating the listener within `App#setup` results in connections being
held open (and never properly released, coincidentally). Instead, create
listener within each run of `App#refresh_loop`, which is like it was
previous to the `App` implementation, only with better closing.

This necessitates adjusting tests to use a fake listener.