Fix premature return of advertisepipe's advertise_thread.

The bug that would cause the advertise_thread to stop after running
through the advertise_dict once was introduced in
be5d7936382d75908bfe42dd65b55d57f6320fb0 (L111-114). The `while`
clause already takes care of stopping the thread when the
advertise dict is empty; since we don't `break` out of the `for`
loop, we would always reach the `else` clause and stop the thread.
Ouch!
Storing error details in an `except` clause in advertisepipe.r2py.
In advertisepipe.r2py, make sure we don't release an already release lock.