querier_cache: unregister queriers evicted due to expired TTL
querier_cache: unregister queriers evicted due to expired TTL

Currently queriers evicted due to their TTL expiring are not
unregistered from the `reader_concurrency_semaphore`. This can cause a
use-after-free when the semaphore tries to evict the same querier at
some later point in time, as the querier entry it has a pointer to is
now invalid.

Fix by unregistering the querier from the semaphore before destroying
the entry.

Refs: #4018
Refs: #4031

Signed-off-by: Botond Dénes <a584fa4d75a0a85d721f44fb6e06315a2853b0b6@scylladb.com>
Message-Id: <4adfd09f5af8a12d73c29d59407a789324cd3d01.1546504034.git.a584fa4d75a0a85d721f44fb6e06315a2853b0b6@scylladb.com>

scylladb/scylla,avikivity/scylla,avikivity/scylla,scylladb/scylla,avikivity/scylla,scylladb/scylla,scylladb/scylla