tor-hsservice: Give the descriptor publisher a separate launch function.
This also makes Publisher::new
synchronous.
If Reactor::new
fails, Publisher::launch
propagates the error to its
caller (to achieve this, I had to give PublisherError
a new
ReactorLaunch
variant and make ReactorError
and UploadError
crate-public).
Closes #1042 (closed)