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)