[trac678] Make sure io_service stops when asked to
.stop() followed directly by .reset() doesn't work. It seems asio has a
"can run" boolean variable, stop sets it to false, reset to true, so if
they are both called from inside the .run() main loop, it does nothing.