system_keyspace: pass exceptions without throwing
system_keyspace: pass exceptions without throwing

In order to avoid needless throwing, exceptions are passed
directly wherever possible. Two mechanisms which help with that are:
 1. make_exception_future<> for futures
 2. co_return coroutine::exception(...) for coroutines
    which return future<T> (the mechanism does not work for future<>
    without parameters, unfortunately)

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