svc_rdvs_destroy()
decrement xp_refcnt at end not at start, because letting it go
to 0 when we're still using it is unsafe.
use svc_rdvs_release to actually decrement xp_refcnt & probably
call rdvs_dodestroy().

Signed-off-by: Marcus Watts <mdw@cohortfs.com>
call sr_rec_release() at end of svc_rqst_thrd_run(), svc_rqst_thrd_signal().
Both of these call svc_rqst_lookup_chan(), which increments refcnt, so
must call sr_rec_release() to undo that.

Decrement refcnt at end of svc_rqst_delete_evchan().  The creation sets refcnt
to 1, so we need this special decrement to get the accounting right
so that it will actually go to 0 in the release.

Signed-off-by: Marcus Watts <mdw@cohortfs.com>
svc_ioq() and others: simplify thrdpool function entry & responsibilities
	(remove cond_signal wakeup and thread count decrement.)
thrd_wait(): don't sleep when shutting down, handle wake when idle.
thrd_start_routine: decrement thread count here, *only* when really exiting.
also do pool_signal here when exiting.
thrd_shutdown(): wake each idle thread so it can exit, don't broadcast bogus
	pool signal

Signed-off-by: Marcus Watts <mdw@cohortfs.com>