client: Refactor stop()/wait_for_stop() so latter only returns once former is finished
client: Refactor stop()/wait_for_stop() so latter only returns once former is finished

Old behaviour could return from wait_for_stop() before greenlets are killed
or stop handlers called.
New handler removes these races while making later calls to stop() block until stopping is complete.

ekimekim/girc