schema_tables: Fix hang during keyspace drop
schema_tables: Fix hang during keyspace drop

Fixes #1484.

We drop tables as part of keyspace drop. Table drop starts with
creating a snapshot on all shards. All shards must use the same
snapshot timestamp which, among other things, is part of the snapshot
name. The timestamp is generated using supplied timestamp generating
function (joinpoint object). The joinpoint object will wait for all
shards to arrive and then generate and return the timestamp.

However, we drop tables in parallel, using the same joinpoint
instance. So joinpoint may be contacted by snapshotting shards of
tables A and B concurrently, generating timestamp t1 for some shards
of table A and some shards of table B. Later the remaining shards of
table A will get a different timestamp. As a result, different shards
may use different snapshot names for the same table. The snapshot
creation will never complete because the sealing fiber waits for all
shards to signal it, on the same name.

The fix is to give each table a separate joinpoint instance.

Message-Id: <9a6af9ccbe53d1df8a5f08b04171a78d72bfff83@scylladb.com>

kjniemi/scylla,kjniemi/scylla,scylladb/scylla,raphaelsc/scylla,avikivity/scylla,raphaelsc/scylla,raphaelsc/scylla,kjniemi/scylla,duarten/scylla,avikivity/scylla,avikivity/scylla,duarten/scylla,scylladb/scylla,duarten/scylla,scylladb/scylla,scylladb/scylla