hs: Service rendezvous circuit can be repurposed
The circuit_build_times_handle_completed_hop()
function is called at every hop built and can decide to repurpose a circuit without the HS subsystem knowing about it.
For clients, it is not such a big deal because they notice if an intro or rendezvous circuit goes away and they will simply relaunch one.
For services, this is A-bad. If the rendezvous circuit gets repurposed that way, the service will not retry leading to the client timing out the rendezvous circuit and redoing the whole HS introduction dance. So in theory, 20% of all service RP request are currently failing and making the client to retry after a CBT for RP.
Essentially, we need the service to retry the rendezvous circuit if it gets repurposed. Proper easy approach here is to simply launch a retry in hs_circ_cleanup_on_repurpose()
if the purpose is S_CONNECT_REND
.